【发布时间】:2018-06-01 09:58:55
【问题描述】:
场景:
我有两个文件,file1 size = 19.7MB 和 file2 size = 446KB。我正在运行以下代码来处理两个文件中的数据并获取输出数据文件。但是在一定的输出文件大小(332KB)之后,程序停止将数据写入输出文件。我尝试使用flush() 函数,但输出文件再次包含与输出文件完全相同的大小,而没有使用flush() 函数(并且在两种情况下(创建文件和最后修改的文件)都花费了完全相同的时间来写入这些数据),而循环是仍在运行。
请有人提出可能的原因?我应该使用sleep()函数在一定时间后唤醒程序吗?谢谢
with open("file2",'rU') as gg:
for g in gg:
g = g.rstrip().split('\t')
with open(file1) as cc:
c = c.rstrip().split('\t')
if int(c[0]) == int(g[0]) and int(c[1]) >= int(g[2]) and int(g[3]) >= int(c[1]):
with open('output.txt', 'a') as ii:
ii.write(c[1]+'\t'+'\t'.join(g)+'\n')
ii.flush()
【问题讨论】:
-
您还在访问
if条件吗? -
而且我认为您在
c = c.rstrip().split('\t')中的代码实际上应该是c = cc.rstrip().split('\t') -
由于您有条件地写入输出文件,因此该条件似乎只满足(很少?)次,即总输出实际上是 332KB。