我有一些 Python3 代码,可以在写入模式下打开一个文件,向其中写入一些内容,然后关闭该文件。文件名是一个int. 由于某种原因,代码无法按预期工作。当我运行该f.write()语句时,a6将打印到屏幕上。当我运行该f.close()语句时,应该写入的字符串被打印到屏幕上。
>>> f = open(2, 'w')
>>> f.write('FooBar')
6
>>> f.close()
FooBar>>>
>>>
Run Code Online (Sandbox Code Playgroud)
我检查了运行此命令的目录,但未2创建文件(名为 )。谁能解释一下发生了什么事吗?我怀疑这与文件名有关int,但我不确定。
您正在传递一个文件描述符编号(2 表示 stderr)。
请参阅的文档open(),重点是我的:
file是一个类似路径的对象,给出要打开的文件的路径名(绝对或相对于当前工作目录)或要包装的文件的整数文件描述符。
至于为什么之前没有发生任何事情.close()(或者.flush():你的流是行缓冲的,并且你没有写换行符。
f = open(2, 'wb', buffering=0)
Run Code Online (Sandbox Code Playgroud)
禁用缓冲。
如果您希望写入名为 的文件'2',则必须传递一个字符串。
f = open('2', 'w')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
554 次 |
| 最近记录: |