如何定期更新文件

时间:2018-01-17 04:56:20

标签: python python-3.x

我在python中有一个代码,它读取一个非常大的文件从另一个文件中获取数据并写入一个匹配且不匹配的值的新文件。 比如说

文件1: AB 公元前 光盘 GH

文件2: ab catch1 ab catch2 bc catch1 bc catch3 bc catch4 ef catch1

输出: AB   catch1   catch2 公元前   catch1   catch3 光盘 GH

问题是输出文件没有定期更新,因此我无法监控文件1中有多少内容已被处理。 我需要定期监视输出,因为输入文件非常大,我无法估算完成所需的时间。

2 个答案:

答案 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()

或者为了检查输出文件的内容,您需要重新加载它并再次显示新写入的数据。