当使用subprocess.run()时,Python3可以通过以下方式将二进制数据传递给标准输入:
- 首先,需要将二进制数据存储到一个临时文件中。可以使用Python的open()函数以二进制写入模式打开一个文件,并将二进制数据写入该文件。
with open('temp.bin', 'wb') as f:
f.write(binary_data)
- 接下来,可以使用subprocess.run()函数来执行命令,并将临时文件的内容作为标准输入传递给该命令。需要将参数stdin设置为subprocess.PIPE,表示将标准输入重定向到一个管道。
import subprocess
result = subprocess.run(['command'], stdin=subprocess.PIPE)
- 最后,将临时文件的内容通过管道传递给命令的标准输入。可以使用subprocess.Popen.communicate()方法来实现。
with open('temp.bin', 'rb') as f:
result = subprocess.run(['command'], stdin=subprocess.PIPE)
result.communicate(input=f.read())
需要注意的是,以上代码中的'command'需要替换为实际的命令,用于处理接收到的二进制数据。
这种方法可以在Python3中将二进制数据传递给标准输入,并且可以适用于各种场景,例如调用其他程序处理二进制数据、执行系统命令等。
腾讯云相关产品和产品介绍链接地址:
- 腾讯云函数计算(云原生、无服务器计算):https://cloud.tencent.com/product/scf
- 腾讯云容器服务(云原生、容器化):https://cloud.tencent.com/product/tke
- 腾讯云云服务器(服务器运维):https://cloud.tencent.com/product/cvm
- 腾讯云对象存储(存储):https://cloud.tencent.com/product/cos
- 腾讯云区块链服务(区块链):https://cloud.tencent.com/product/tbaas
- 腾讯云人工智能(人工智能):https://cloud.tencent.com/product/ai
- 腾讯云物联网(物联网):https://cloud.tencent.com/product/iot
- 腾讯云移动开发(移动开发):https://cloud.tencent.com/product/mad
- 腾讯云音视频服务(音视频、多媒体处理):https://cloud.tencent.com/product/vod
- 腾讯云数据库(数据库):https://cloud.tencent.com/product/cdb
- 腾讯云网络安全(网络安全):https://cloud.tencent.com/product/ddos
- 腾讯云CDN加速(网络通信):https://cloud.tencent.com/product/cdn