我想知道是否可以在不使用命令的情况下知道包含文件文本的行数:
with open('test.txt') as f:
text = f.readlines()
size = len(text)
我的文件非常庞大,所以很难使用这种方法...
答案 0 :(得分:11)
作为一种更加pythonic的方式,您可以在sum
函数中使用生成器表达式:
with open('test.txt') as f:
size=sum(1 for _ in f)
答案 1 :(得分:9)
对您的方法稍作修改
with open('test.txt') as f:
line_count = 0
for line in f:
line_count += 1
print line_count
备注:强>
在这里,您将逐行浏览并且不会将完整文件加载到内存中
答案 2 :(得分:4)
文件的行数未存储在元数据中。所以你实际上必须通过整个文件运行才能搞清楚。你可以通过以下方式提高内存效率:
lines = 0
with open('test.txt') as f:
for line in f:
lines = lines + 1
答案 3 :(得分:4)
with open('test.txt') as f:
size=len([0 for _ in f])