2013-08-02 118 views
0

我對Python知之甚少,所以我希望這個問題不太模糊。Python腳本掛起

我試圖運行位於這裏的python腳本quarqd_messages.py:

https://github.com/markrages/antsrm/tree/master/firmware/qapy

我使用的命令行是: 「quarqd_messages.py --header>消息頭.h「

但是,它掛起,輸出文件爲0kb。

我試着調試,PDB,當我這樣做,它一步一步地給這一行:

 for line in fd.readlines(): 

,然後將其掛起。我在另一個答案中讀到,.readlines()應該避免出於記憶原因,但刪除它沒有效果。

有人可以幫我嗎?

+0

一般來說,如果readlines()掛起,它將等待來自* somewhere *的輸入。 –

回答

0

我覺得程序編寫,該公司預計將數據從標準輸入傳遞的方式:

ms.load(sys.stdin) 

,所以你需要:

something | quarqd_messages.py --header > message-headers.h 
+0

啊..這使得我使用的命令行很有意義,我是如何解釋makefile調用它..顯然我需要了解更多關於Makefile腳本。謝謝! – user2646524

1

在這種情況下,fdsys.stdin;該腳本正在嘗試從腳本的stdin管道讀取數據。

您需要將數據傳輸到此腳本中;或許像quarqd_messages.py --header < somedatafile

0

這是這樣做的另一種方式,在一行

quarqd_messages.py --header <MessageSet.txt> message-headers.h 

它同時使用的輸入和輸出重定向。 MessageSet.txt正被重定向到quarqd_messages.py(輸入重定向),並且程序的輸出正被重定向到message-headers.h(輸出重定向)。爲了清楚說明,可以使用括號編寫相同的命令。

(quarqd_messages.py --header < MessageSet.txt) > message-headers.h