2024-04-25 21:56:42 发布
网友
对于文件操作,Python使用操作系统的默认缓冲区,除非您对其进行了其他配置。可以指定缓冲区大小、无缓冲区或行缓冲区。
例如,open函数接受缓冲区大小参数。
http://docs.python.org/library/functions.html#open
“可选缓冲参数指定文件所需的缓冲区大小:
代码:
bufsize = 0 f = open('file.txt', 'w', buffering=bufsize)
我不知道这是否也适用于python,但我认为这取决于您运行的操作系统。
例如,在Linux上,输出到终端刷新换行符上的缓冲区,而输出到文件只在缓冲区已满时刷新(默认情况下)。这是因为刷新缓冲区的次数越少,效率就越高,而且如果输出没有在文件的换行符上刷新,用户就不太可能注意到。
如果您需要的话,您可以自动刷新输出。
编辑:我认为您可以用这种方式在python中自动刷新(基于 来自here)
#0 means there is no buffer, so all output #will be auto-flushed fsock = open('out.log', 'w', 0) sys.stdout = fsock #do whatever fsock.close()
还可以使用^{}方法以编程方式强制将缓冲区刷新到文件。
with open('out.log', 'w+') as f: f.write('output is ') # some work s = 'OK.' f.write(s) f.write('\n') f.flush() # some other work f.write('done\n') f.flush()
当使用tail -f跟踪输出文件时,我发现这很有用。
tail -f
对于文件操作,Python使用操作系统的默认缓冲区,除非您对其进行了其他配置。可以指定缓冲区大小、无缓冲区或行缓冲区。
例如,open函数接受缓冲区大小参数。
http://docs.python.org/library/functions.html#open
“可选缓冲参数指定文件所需的缓冲区大小:
代码:
我不知道这是否也适用于python,但我认为这取决于您运行的操作系统。
例如,在Linux上,输出到终端刷新换行符上的缓冲区,而输出到文件只在缓冲区已满时刷新(默认情况下)。这是因为刷新缓冲区的次数越少,效率就越高,而且如果输出没有在文件的换行符上刷新,用户就不太可能注意到。
如果您需要的话,您可以自动刷新输出。
编辑:我认为您可以用这种方式在python中自动刷新(基于 来自here)
还可以使用^{} 方法以编程方式强制将缓冲区刷新到文件。
当使用
tail -f
跟踪输出文件时,我发现这很有用。相关问题 更多 >
编程相关推荐