我有一个文本文件。如何检查文件是否为空或不空?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. C++检查文件是否为空
- 2. Java检查文件是否为空:IOException:null
- 3. ANT:检查文件是否为空
- 4. 检查文件是否为空或不
- 5. 检查Excel文件是否为空C#
- 6. 检查文本文件是否为空Python
- 7. GWT检查文本框是否为空
- 8. 检查文本字段是否为空
- 9. 文本框不检查是否为空
- 10. 检查文本框是否为空
- 11. 检查JTextField是否为空
- 12. 检查stderr是否为空
- 13. 检查NumericUpDown是否为空
- 14. laravel检查是否为空
- 15. 检查imageView是否为空
- 16. 检查表是否为空
- 17. 检查CheckedListBox是否为空
- 18. 检查JValue是否为空
- 19. 检查StringBuffer是否为空
- 20. 检查是否为空DataRow
- 21. 检查是否为空VB.NET
- 22. 检查ListView是否为空
- 23. 检查TextView是否为空?
- 24. 检查tabControl1是否为空?
- 25. 检查流是否为空
- 26. 检查它是否为空
- 27. 检查textarea是否为空
- 28. 检查innerHTML是否为空
- 29. 检查CSV是否为空
- 30. ASP.Net检查FileUpload控件是否为空
'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