在 python 2.7 中我能够做到:
file('text.txt', 'w').write('some text')
但是在 python 3 中我必须使用 open 函数,所以我不能再在一行中写入文件了。
f = open('text.txt', 'w')
print('some text', file = f)
f.close()
为什么他们删除了
file
功能?
open('text.txt', 'w').write('some text')
的工作方式相同,并且
open
长期以来一直是打开文件(并因此创建 file
实例)的规范方法,即使在 Python 2.x 上也是如此。
但应该注意的是,在 Python 3.8+ 中,现在会生成关于未关闭文件的
ResourceWarning
。这是因为,虽然文件“通常”会在“调用”后自动关闭,但根据垃圾收集设置,这不会“不一定”立即发生,因此打开的文件句柄可能会持续存在。确保文件关闭并避免警告的正确方法(令人烦恼的是,这使得代码不再可内联)是:
write