我尝试在while循环中写入CSV文件,如下所示:
import csv
writer = csv.writer(open('rawi.csv', 'a'))
def rawi():
# some other code
writer.writerow(row)
def main():
while True:
rawi()
if __name__ == "__main__":
main()
但这只会在我用Ctrl+C
中断程序时写入。你知道吗
我查看了这个answer,但是csv.writer
没有flush
方法。你知道吗
循环运行时如何写入此文件?你知道吗
多亏了@Chris Doyle和@martineau,我这样解决了它:
我们可以看到它是有效的:
csv writer获取文件对象。因此,您可以先打开一个文件,然后将该文件对象传递给csv writer,而不是在构造函数调用中使用open。这样做的好处是您现在可以访问file对象,因此可以调用它的flush方法。如果您正在使用此方法,则最好打开新行设置为空的文件。你知道吗
每次打开文件都会看到新的结果。你知道吗
输出
您也可以通过使用
buffering=1
打开文件来实现相同的行为。这将设置行缓冲,然后您不必调用文件的flush方法。你知道吗这与在每个writerow之后调用flush具有相同的效果
相关问题 更多 >
编程相关推荐