Python:获取管道到stdin的文件名



我有一个python程序,它从stdin读取输入(必选),并处理来自stdin的行:

for lines in stdin:
#do stuff to lines
filename = #need file name
#example print
print(filename)

然而,在这个for循环中,我还需要获得像这样管道输入到这个python程序中的文件的名称:

cat document.txt | pythonFile.py #should print document.txt with the example print

有办法做到这一点吗?

不,这不可能。作为管道的接收端,您不知道您的数据流来自何处。cat的使用进一步混淆了它,但即使你写./pythonFile.py < document.txt,你也不会有任何线索。

许多unix工具接受文件名作为参数,-作为'stdin'的特殊代码。您可以以同样的方式设计脚本,因此可以像

这样调用它。
  • cat document.txt | pythonFile.py -(你的脚本不知道输入来源)
  • ./pythonFile.py document.txt(你的脚本不知道文件)

相关内容

  • 没有找到相关文章

最新更新