"Index out of range" 通过 cat PYTHON 从文件中读取内容时

"Index out of range" while reading contents from a file through cat PYTHON

我正在尝试通过 cat 命令从文件中获取输入到 python 文件中。我的 python 版本是 3.5。代码看起来像这样。

with open(sys.argv[1]) as f:
    while True:
        if f.readline()== '':
            break
        line = f.readline().strip()

我正在通过以下命令获取输入。

python cptest.py | cat ts.csv

但我一直运行进入以下错误。

File "cptest.py", line 9, in with open(sys.argv[1]) as f: IndexError: list index out of range

如何使用 cat 命令从文件向 python 脚本发送输入?我必须使用 cat 命令,或者我可以通过管道将输入传输到文件的任何其他方式。

看来问题出在你的命令上。您将 python 脚本的输出通过管道传输到 cat 并使用 cat 打开文件,这意味着 cat 将忽略您通过管道传输给它的任何内容。您应该将 cat 的输出通过管道传递给您的脚本:cat ts.csv | python cptest.py 然后,为了从 python 中的标准输入(从管道)中读取输入,您应该这样做:for line in sys.stdin。 我建议将文件名作为参数提供给您的 python 脚本,如下所示:python cptest.py ts.csv 然后打开此文件(您可以在 sys.argv[1] 中找到此文件python(而不是猫)并逐行循环。

祝你好运, 泰奥