0

我对 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() 出于内存原因应避免使用,但删除它没有效果。

有人可以帮助我吗?

4

3 回答 3

1

在这种情况下,fdsys.stdin;该脚本正在尝试从脚本的标准输入管道读取数据。

您需要将数据通过管道传输到此脚本中;也许是这样的quarqd_messages.py --header < somedatafile

于 2013-08-02T15:44:05.363 回答
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
于 2013-08-02T16:12:21.927 回答
0

我认为程序的编写方式是期望从标准输入传入数据:

ms.load(sys.stdin)

所以你需要:

something | quarqd_messages.py --header > message-headers.h
于 2013-08-02T15:43:58.250 回答