jsk@dev1:~$ python3
Python 3.5.2 (default, Sep 10 2016, 08:21:44)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from pathlib import Path
>>> (Path("/etc") / "hostname").read_text()
'dev1.example\n'
使用CPython,您的文件将在执行行之后立即关闭,因为文件对象将立即被垃圾回收。不过,有两个缺点:
在与CPython不同的Python实现中,文件通常不会立即关闭,而是在稍后的时间关闭,这超出了您的控制范围。
在Python3.2或更高版本中,如果启用,则将抛出
ResourceWarning
。最好再投资一条线:
这将确保在所有情况下正确关闭文件。
您不必真正关闭它—无论是在垃圾收集期间还是在程序退出时,Python都会自动关闭它。但正如@delnan所指出的,出于各种原因明确关闭它是更好的做法。
所以,你可以做些什么来保持简洁明了:
我想现在只有两行字,可读性很强。
Python标准库Pathlib模块执行您所需的操作:
不要忘记导入路径:
在Python 27上安装后端口的^{} 或^{}
相关问题 更多 >
编程相关推荐