我正在Windows中编写Python脚本.我想根据文件大小做一些事情.例如,如果大小大于0,我将向某人发送电子邮件,否则继续其他事情.
如何检查文件大小?
我并不是Python的新手,但我仍然无法理解是什么让"Pythonic"(以及相反的)成为了什么.
如果这是一个愚蠢的问题,请原谅我,但为什么我不能通过执行len(文件)来获取文件的大小?
文件.__len__甚至没有实现,所以它不像其他东西需要它?如果它被实现为返回文件大小,它会因某种原因而混淆/不一致吗?
我有一个需要处理的25GB文件.这是我目前正在做的事情,但打开需要很长时间:
collection_pricing = os.path.join(pricing_directory, 'collection_price')
with open(collection_pricing, 'r') as f:
collection_contents = f.readlines()
length_of_file = len(collection_contents)
for num, line in enumerate(collection_contents):
print '%s / %s' % (num+1, length_of_file)
cursor.execute(...)
Run Code Online (Sandbox Code Playgroud)
我怎么能改善这个?
我有这部分代码,我最初无法工作:
with open ("Names.txt" , "r+") as f:
f.seek(0)
if f.read() == " ":
print("No text")
else:
print("Got text")
Run Code Online (Sandbox Code Playgroud)
它应该检查文本文件是否有任何文本。
但是,当我运行此代码时,即使文件为空,它也会始终返回“获取文本”。
我找到了一种使它工作的方法:
with open ("Names.txt" , "r+") as f:
f.seek(0)
if not f.read():
print("No text")
else:
print("Got text")
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,为什么第二段代码有效而第一段无效?