首页 > 解决方案 > 从python中的命令行中提取“>”后的文件名

问题描述

如何从 python 的命令行中提取符号“>”后的文件名。例如:

python func.py -f file1.txt -c > output.txt

我想从上面的命令行获取输出文件名'output.txt'。

谢谢

标签: pythoncommand-line

解决方案


你不能。

当你在 shell 中编写类似的东西command > file时,shell:

  1. 创建file如果它不存在,
  2. 打开它,然后
  3. 将描述符分配给 的标准输出command

被调用的进程(不管是 Python 还是其他东西都没有关系)不知道数据在写入后会发生什么,因为它只看到shell 提供的描述符。这有点像一根很长的管道的一端:你知道你可以把东西放进去,但你看不到另一端会发生什么。

如果要在该调用中检索文件名,则需要:

  • 将其作为参数传递给您的 Python 程序并处理来自 Python 的重定向,例如python func.py -f file1.txt -c output.txt,或
  • 从外壳输出它,例如echo 'output.txt'; python func.py -f file1.txt -c > output.txt

推荐阅读