为什么在Python 3.5.2中为文件名指定open()函数的closefd参数必须为True?
在Python 3.5.2中,当我使用文件名为open()函数的closefd参数赋值为False时,我得到以下错误:为什么在Python 3.5.2中为文件名指定open()函数的closefd参数必须为True?,python,python-3.x,Python,Python 3.x,在Python 3.5.2中,当我使用文件名为open()函数的closefd参数赋值为False时,我得到以下错误: Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: Cannot use closefd=False with file name 在Python中,有两个目的: 从文件名打开给定文件,或 包装表示已打开文件的文件描述符 如果您有一个文件描
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: Cannot use closefd=False with file name
在Python中,有两个目的:
open()
函数提供了一个参数,允许您指定希望文件描述符保持打开状态。由于此行为仅在将文件描述符传递给open()
时才有意义,因此如果尝试将其与文件名一起使用,则会引发错误。在Python中,有两个目的:
因此,
open()
函数提供了一个参数,允许您指定希望文件描述符保持打开状态。由于此行为仅在将文件描述符传递给open()
时才有意义,因此如果尝试将其与文件名一起使用,则会引发错误。文档很清楚:如果给定文件名,closefd
必须为True
(默认值),否则将引发错误。你在理解上有什么困难?你在寻找这条规则背后的原因吗?@FrédéricHamidi我理解这句话,但我问了为什么?文档很清楚:如果给定了文件名,closefd
必须是True
(默认值),否则将引发错误。你在理解上有什么困难?你在寻找这条规则背后的原因吗?@FrédéricHamidi我理解这句话,但我问过为什么会这样?
Python 3.5.2 (default, Jul 5 2016, 12:43:10)
[GCC 5.4.0 20160609] on linux