我在python中有一个代码,它读取一个非常大的文件从另一个文件中获取数据并写入一个匹配且不匹配的值的新文件。 比如说
文件1: AB 公元前 光盘 GH
文件2: ab catch1 ab catch2 bc catch1 bc catch3 bc catch4 ef catch1
输出: AB catch1 catch2 公元前 catch1 catch3 光盘 GH
问题是输出文件没有定期更新,因此我无法监控文件1中有多少内容已被处理。 我需要定期监视输出,因为输入文件非常大,我无法估算完成所需的时间。
答案 0 :(得分:1)
您可以使用文件对象的“flush()”方法
flush方法强制将内存中的数据写入文件,然后再写入文件。
像这样使用
output.flush()
示例代码A:
a = open('test', 'w')
a.write('good2')
b = open('test', 'r')
print b.read()
a.close()
b.close()
示例代码B:
a = open('test', 'w')
a.write('good2')
a.flush()
b = open('test', 'r')
print b.read()
a.close()
b.close()
示例A和B的行为会有所不同。
flush方法将有助于检查正在写入的文件的当前状态。
答案 1 :(得分:0)
您可以在python脚本中使用进度条:
import time
import progressbar
maxval = 100
pbar = progressbar.ProgressBar(maxval=maxval)
pbar.start()
for i in range(maxval):
# do something
time.sleep(0.05)
pbar.update(i+1)
pbar.finish()
或者为了检查输出文件的内容,您需要重新加载它并再次显示新写入的数据。