我试图获取在命令行中给出的文件名。例如:
python3 ritwc.py <DarkAndStormyNight.txt
我正在尝试获取DarkAndStormyNight.txt
当我尝试fileinput.filename()时,我得到了与sys.stdin相同的信息。这可能吗?我没有在寻找返回当前脚本名称的sys.argv [0]。
谢谢!
通常 ,不可能以与平台无关的方式获取文件名。其他答案涵盖了明智的选择,例如在命令行上传递名称。
在Linux和某些相关系统上,可以通过以下技巧获得文件名:
import os print(os.readlink('/proc/self/fd/0'))
/proc/是Linux上的特殊文件系统,它提供有关计算机上进程的信息。self表示当前正在运行的进程(打开文件的进程)。fd是一个目录,其中包含该过程中每个打开的文件描述符的符号链接。0是的文件描述符号stdin。
/proc
self
fd
stdin