我有一個文本文件。如何檢查文件是否爲空或不空?Python - 檢查文件是否爲空
回答
>>> import os
>>> os.stat("file").st_size == 0
True
import os
os.path.getsize(fullpathhere) > 0
爲了安全起見,您可能需要趕'OSError'並返回false。 – kennytm 2010-03-24 13:09:18
使用vs vs.state('file')有什麼區別/優點。st_size? – 2017-11-25 00:30:11
看起來像兩個是在引擎蓋下相同:https://stackoverflow.com/a/18962257/1397061 – 2018-02-07 06:29:59
如果由於某種原因,你已經有文件打開,你可以試試這個:
>>> with open('New Text Document.txt') as my_file:
... # I already have file open at this point.. now what?
... my_file.seek(0) #ensure you're at the start of the file..
... first_char = my_file.read(1) #get the first character
... if not first_char:
... print "file is empty" #first character is the empty string..
... else:
... my_file.seek(0) #first character wasn't empty, return to start of file.
... #use file now
...
file is empty
兩個getsize()
和stat()
將拋出一個異常,如果該文件不存在。這個函數將返回真/假不拋出:
import os
def is_non_zero_file(fpath):
return os.path.isfile(fpath) and os.path.getsize(fpath) > 0
絕對像使用''os.path.getsize()'' – 2013-11-19 22:05:35
有一個競爭條件,因爲文件可能是在對'os.path.isfile(fpath)'和'os.path.getsize(fpath)'的調用之間移除,在這種情況下,建議的函數會引發異常。 – s3rvac 2017-05-04 09:10:27
更好地嘗試和趕上'OSError',而不是像[另一評論]中提出的(http://stackoverflow.com/questions/2507808/python-how-to-check-file-empty-or-not/15924160# comment2503155_2507819)。 – j08lue 2017-05-04 13:23:15
好了,所以我會結合ghostdog74's answer和意見,只是爲了好玩。
>>> import os
>>> os.stat('c:/pagefile.sys').st_size==0
False
False
表示非空文件。
因此,讓我們寫一個函數:
import os
def file_is_empty(path):
return os.stat(path).st_size==0
- 1. Java檢查文件是否爲空:IOException:null
- 2. 檢查文件是否爲空?
- 3. 檢查Excel文件是否爲空C#
- 4. ANT:檢查文件是否爲空
- 5. C++檢查文件是否爲空
- 6. 檢查文件是否爲空
- 7. 檢查xml文件是否爲空
- 8. 檢查文件是否爲空或不
- 9. 檢查文本文件是否爲空Python
- 10. Shell腳本文件,檢查文本文件是否爲空
- 11. 檢查dataGridView是否爲空
- 12. 檢查JValue是否爲空
- 13. 檢查imageView是否爲空
- 14. 檢查tabControl1是否爲空?
- 15. 檢查CSV是否爲空
- 16. 檢查double是否爲空
- 17. 檢查列是否爲空
- 18. 檢查ALAssetsLibrary是否爲空
- 19. 檢查ArrayCollection是否爲空
- 20. laravel檢查是否爲空
- 21. 檢查textarea是否爲空
- 22. 檢查NumericUpDown是否爲空
- 23. 檢查ImageSource是否爲空
- 24. 檢查是否爲空JasperReports
- 25. 檢查是否爲空JFormattedTextField
- 26. 檢查editText是否爲空
- 27. 檢查JTextField是否爲空
- 28. 檢查是否爲空VB.NET
- 29. 檢查StringBuffer是否爲空
- 30. 檢查OnAction是否爲空
'stat.ST_SIZE'而不是6 – wRAR 2010-03-24 13:37:11
這也沒關係。但我不想導入統計。它的短小和甜蜜,以及返回列表中的大小位置不會很快改變。 – ghostdog74 2010-03-24 13:48:56
@wRAR:os.stat('file')。st_size更好 – 2010-03-24 15:16:50