Python 3 没有文件功能

问题描述 投票:0回答:1

在 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
功能?

python file python-3.x deprecated
1个回答
21
投票
open('text.txt', 'w').write('some text')

的工作方式相同,并且

open
长期以来一直是打开文件(并因此创建
file
实例)的规范方法,即使在 Python 2.x 上也是如此。

但应该注意的是,在 Python 3.8+ 中,现在会生成关于未关闭文件的

ResourceWarning
。这是因为,虽然文件“通常”会在“调用”后自动关闭,但根据垃圾收集设置,这不会“不一定”立即发生,因此打开的文件句柄可能会持续存在。确保文件关闭并避免警告的正确方法(令人烦恼的是,这使得代码不再可内联)是: write
    
© www.soinside.com 2019 - 2024. All rights reserved.