那么,如何使用stdin传递二进制数据给可执行命令,在使用
关于使用stdin将数据传递给外部可执行文件的方式,文档描述非常模糊。我在使用Python3的Linux机器上工作,我想调用
我的要求很简单,只需将我在
编辑:我的意思是像以下示例一样:
subprocess.run()
运行该命令时呢?关于使用stdin将数据传递给外部可执行文件的方式,文档描述非常模糊。我在使用Python3的Linux机器上工作,我想调用
dd of=/somefile.data bs=32
(如果我正确理解man page,则从stdin获取输入),我有一个bytearray
中的二进制数据,我想通过stdin将其传递给该命令,以便我不必将其写入临时文件并使用该文件作为输入来调用dd
。我的要求很简单,只需将我在
bytearray
中拥有的数据传递给dd
命令以写入磁盘。使用subprocess.run()
和stdin实现这一点的正确方法是什么?编辑:我的意思是像以下示例一样:
ba = bytearray(b"some bytes here")
#Run the dd command and pass the data from ba variable to its stdin
Popen
时,您可以设置stdin=<something>
,但不确定是否可以将其设置为仅为标准输入,您需要先收集输入,然后将其传递给子进程。如果您有另一个生成输出的进程,并且希望在此处将其用作stdin
,则可以肯定地执行此操作-即proc2的标准输入是proc1的输出。因此,proc1将是您的dd
命令,而proc2将是您想要将输出传递给的任何进程。不确定这是否有所帮助-我对确切要求有点不清楚。 - michjnichbytearray
中拥有的数据传递给dd
命令,以便写入磁盘。已编辑问题。 - The amateur programmer