我对一段Python代码感到困惑:
with open('/dev/null', 'w+') as null:
可能是因为我不了解其他操作系统,但我认为文件名被禁止使用' /'字符。如果是这样,我不明白这是一个有效的命令。
现在我明白在Python中使用open函数时,如果文件存在于当前工作目录以外的目录中,则必须在文件名参数的前面添加路径。但是,这似乎不是这种情况,因为open函数的文件名参数只是' / dev / null /'。是' null'文件名。
这与此有关: https://en.wikipedia.org/wiki/Null_device
"在某些操作系统中,空设备是一个设备文件,它丢弃写入它的所有数据,但报告写操作成功。该设备在Unix和类Unix系统上称为/ dev / null"
答案 0 :(得分:2)
在Unix系统上,文件名不能包含正斜杠,因为它用作目录分隔符。一个文件的名称不能只包含一个或两个点,因为它们用于"当前目录"和#34;父目录"也是。以正斜杠开头的路径是绝对路径,从根路径一直沿着目录树向下。
在该代码中,它会打开/dev/null
,这是一个特殊的字符设备,可以丢弃写入它的所有内容并报告写入成功。在某些情况下,人们可能想要丢弃特定函数的输出,例如subprocess.run
。在这种情况下,打开空设备的句柄很有用。