在python中打印到文件时是否应该始终使用with

2024-04-18 02:26:52 发布

您现在位置:Python中文网/ 问答频道 /正文

据我所知,有两种打印到文件的方法:

方法1

file = open('myfile.txt', 'a')
file.write('sup')

# LATER ON

file.write('yo')

# AT THE END

file.close()

方法2

with open('myfile.txt', 'a') as f:
   f.write('sup')

# LATER ON

with open('myfile.txt', 'a') as f:
   f.write('yo')

第一种方法的问题是,如果程序突然结束,文件不会关闭,也不会保存。因此,我当前正在使用with并在每次打印时重新打开该文件。但是,考虑到我几乎每5秒钟就向这个文件追加一次,我意识到这可能是个坏主意。每次打印前用“with”重新打开文件是否会对性能造成重大影响?如果是这样的话,我应该如何处理导致文件无法使用第一种方法关闭的突然结束。你知道吗


Tags: 文件the方法txtonaswithopen
2条回答

在第一种方法中,您要做的是在完成一组写入操作后刷新对文件系统的更改。i、 电子邮件:

file.flush()

对于一些简单的东西,比如您的示例中的东西,是的,您应该使用with open...与文件交互。你知道吗

我建议您将写操作放在try:中,将结束操作放在finally:

with open('myfile.txt', 'a') as f:
    try:
        f.write('sup')
        # Extra Code
        f.write('yo')
    finally:
        f.close()

这可以确保f.在出现错误或您的a简单地完成运行时正确关闭。你知道吗

这是Python的一部分cleanup functions

相关问题 更多 >