推 Xphenomenon:感謝回答 :> 07/01 10:44
※ 引述《jameschen113 (大頭熊)》之銘言:
: #!/usr/bin/env python
: ###test.py
: import sys
: inpFile=open(sys.argv[1],'r')
: line=inpFile.readline()
: while line!="":
: print line
: line=inpFile.readline()
: inpFile.close()
: 使用方法: python test.py num.txt
: ※ 引述《Xphenomenon (啦 )》之銘言:
: : 在 c 裡面可以這樣寫
: : test.c
: : #define
: : int main(void) {
: : int num;
: : while(scanf("%d", &num) == 1) {
: : printf("%d\n", num);
: : }
: : return 0;
: : }
: : num.txt 內容:
: : 3
: : 3
: : 5
: : 6
: : 7
: : 8
: : gcc -o test test.c
: : ./test < num.txt
: : 請問如果在 Python 裡面我要怎麼寫才能達到如 C 的要求呢?
: : 我試過如:
: : test.py
: : while True:
: : a = raw_input()
: : if(len(a)
: : print a
: : python test.py < num.txt
: : 但會有以下錯誤:
: : Traceback (most recent call last):
: : File "test.py", line 2, in <module>
: : a = raw_input()
: : EOFError: EOF when reading a line
: : 麻煩大大解答一下,感謝 :>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.230.206.149
sys.stdin 是一個檔案物件,等同於 C 的 stdio.h 裡的 stdin
所以直接讀取 sys.stdin 就好囉
#!/usr/bin/python -t
import sys
while True:
str = sys.stdin.readline()
str = str[:-1]
if len(str) > 0:
print str
else:
sys.exit(0)
另外根據官方手冊, raw_input() 讀到EOF就會產生 EOFError 例外
所以會產生錯誤是正常的