Unix shell上的python中的sys.stdin

时间:2018-10-24 22:28:01

标签: python stdin

我正在通过unix外壳编写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”行时,它什么都不做,但是程序不会像存在无限循环之类的那样退出。我该如何打印?

1 个答案:

答案 0 :(得分:2)

使用

python3 sample.py data.txt

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

python3 sample.py < data.txt

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