一尘不染

Python stdin文件名

python

我试图获取在命令行中给出的文件名。例如:

python3 ritwc.py <DarkAndStormyNight.txt

我正在尝试获取DarkAndStormyNight.txt

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

谢谢!


阅读 255

收藏
2021-01-20

共1个答案

一尘不染

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

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

import os
print(os.readlink('/proc/self/fd/0'))

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

2021-01-20