【问题标题】:Why is my bash executed python script outputting just the filename to a txt file?为什么我的 bash 执行的 python 脚本只将文件名输出到 txt 文件?
【发布时间】:2021-01-16 19:54:08
【问题描述】:

我有两个文件。 执行 python 文件的 bash。现在,我只是想通过简单地打印命令行参数来了解命令行参数如何为 python 工作。

我希望命令行参数是 bash 循环中的“i”...

do
    /usr/bin/time python3 file_name.py $i > ./run/file_output$i.txt
done

python 文件

import sys

def run():
     print(sys.argv[0])

if __name__ == "__main__":
     run()

输出的 txt 文件已正确创建和编号,但每个文件都只有 filen_ame.py 而不是 i 的值。

谢谢。

【问题讨论】:

    标签: python bash command-line-arguments


    【解决方案1】:

    这是因为sys.argv[0] 是可执行文件名,而不是第一个参数,正如您将在以下程序中看到的那样:

    import sys
    for arg in sys.argv:
        print(arg)
    

    运行它时,你会看到:

    pax> python3 prog.py a b c
    prog.py
    a
    b
    c
    

    换句话说,如果您想要第一个参数,请使用sys.argv[1]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-15
      • 2014-03-24
      • 2017-04-07
      • 2019-10-18
      • 1970-01-01
      • 2012-03-14
      • 2020-10-18
      • 2017-05-09
      相关资源
      最近更新 更多