sys.stdin 在 python on unix shell

sys.stdin in python on unix shell

我正在通过 unix shell 编写 python 程序。当我编写程序时,我不得不硬编码我的数据。但是我的目标是能够像这样 shell 标准输入数据

python3 sample.py data.txt

其中sample.py是程序,data.txt是数据。 Data.txt 包含由制表符分隔的两列数据。然后我打印以确保它正常工作。我写的读取数据进去的代码方式如下

for line in sys.stdin:
    words = re.split(r'\t',line)
    print(words)

拆分标签行的内容,并打印以确保其正常工作。当运行行"python3 sample.py data.txt"时,它什么都不做,但是程序不会像死循环之类的那样退出。我怎样才能打印出来?

python3 sample.py data.txt

您正在将 data.txt 作为 参数 传递。要将其内容作为输入(到标准输入)传递,请执行:

python3 sample.py < data.txt

redirection operator < 是一个 shell 构造并引用标准输入。