Python stdin文件名

Joe*_*iak 7 python filenames stdin

我正在尝试获取命令行中给出的文件名.例如:

python3 ritwc.py <DarkAndStormyNight.txt

我想要获得DarkAndStormyNight.txt

当我尝试fileinput.filename()时,我得到了与sys.stdin相同的内容.这可能吗?我不是在寻找返回当前脚本名称的sys.argv [0].

谢谢!

nne*_*neo 5

通常,不可能以与平台无关的方式获取文件名。其他答案涵盖了明智的选择,例如在命令行上传递名称。

在Linux和某些相关系统上,可以通过以下技巧获得文件名:

import os
print(os.readlink('/proc/self/fd/0'))
Run Code Online (Sandbox Code Playgroud)

/proc/是Linux上的特殊文件系统,它提供有关计算机上进程的信息。self表示当前正在运行的进程(打开文件的进程)。fd是一个目录,其中包含该过程中每个打开的文件描述符的符号链接。0是的文件描述符号stdin