簡體   English   中英

使用 python 從重定向的標准輸入讀取輸入

[英]Read input from redirected stdin with python

我有這個循環從 stdin 讀取行直到輸入換行符,但是,這只適用於輸入輸入。 如何讓程序通過命令行從重定向的標准輸入讀取行?

例如:

$ python graph.py < input.input

這是我必須從輸入中讀取行的循環:

while 1:
     line = sys.stdin.readline()
     if line == '\n':
         break
     try:
       lines.append(line.strip())
     except:
       pass

正如其他人所提到的,可能您的條件line == '\\n'永遠不會成立。 正確的解決方案是使用如下循環:

for line in sys.stdin:
  stripped = line.strip()
  if not stripped: break
  lines.append(stripped)

ETA:根據您對陷入無限循環的評論,您可能只是在文件末尾沒有空行。


使用管道字符:

input.input | python graph.py

如果input.input實際上是一個文件而不是一個流,請使用cat從它創建一個流:

cat input.input | python graph.py

考慮以下選項

import sys
sys.stdin = open("input.txt", "r")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM