我对Python知之甚少,所以我希望这个问题不要太模糊。
我正在尝试运行位于此处的python脚本quarqd_messages.py:
https://github.com/markrages/antsrm/tree/master/firmware/qapy
我正在使用的命令行是: “quarqd_messages.py --header> message-headers.h”
但是,它会挂起,输出文件为0kb。
我尝试用pdb进行调试,当我这样做时,它会逐步进入这一行:
for line in fd.readlines():
然后它挂起。我确实在另一个答案中读到,出于内存原因应该避免使用.readlines(),但删除它并没有效果。
有人能帮助我吗?
答案 0 :(得分:1)
在这种情况下,fd
为sys.stdin
;该脚本试图从脚本的stdin管道读取数据。
您需要将数据传输到此脚本中;或许像quarqd_messages.py --header < somedatafile
?
答案 1 :(得分:0)
我认为编写程序的方式,它期望数据从stdin传入:
ms.load(sys.stdin)
所以你需要:
something | quarqd_messages.py --header > message-headers.h
答案 2 :(得分: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