我有一个需要处理的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)
我怎么能改善这个?
我正在编写一个用于计算文件中元音数量的赋值,目前在我的类中我们只使用这样的代码来检查文件的结尾:
vowel=0
f=open("filename.txt","r",encoding="utf-8" )
line=f.readline().strip()
while line!="":
for j in range (len(line)):
if line[j].isvowel():
vowel+=1
line=f.readline().strip()
Run Code Online (Sandbox Code Playgroud)
但是这次我们的任务由我们的教授给出的输入文件是一篇完整的文章,所以在整个文本中有几个空行来分隔段落和诸如此类的东西,这意味着我的当前代码只会计算到第一个空白行.
除了检查线路是否为空之外,有没有办法检查我的文件是否已到达终点?优选地,以类似的方式,我当前拥有我的代码,其中它检查while循环的每次迭代的某些内容
提前致谢
我有一个100GB的文本文件,大约有50K行,不是相同的长度.
它太大而无法放入内存,因此目前我逐行阅读.这也需要很长时间.有更聪明的方法来读取文件吗?例如,一次读几行?
我有一个包含数千条记录的文件,每行一条.我需要阅读100,处理它们,读取另外100个,处理它们等等.我不想加载那些记录并将它们保存在内存中.如何使用Python从打开的文件读取(直到EOF)100或更少(当遇到EOF时)行?
我正在研究一个使用txt文件的Python项目.它会读取一些非常长的文本文件(几千行 - 但我可以将其更多 - 那是UTF-8编码的)放入一个列表中,对它们进行大量操作,然后将它们写回文件.
我想知道这是否是做这种事的正确方法.也就是说,Python可以在内存中保存的文本数量是多少?我是否应该考虑到限制(如果是这样,我该如何考虑它)?