gpt4 book ai didi

python子进程dd和stdout

转载 作者:行者123 更新时间:2023-11-28 22:04:12 24 4
gpt4 key购买 nike

我正在使用子进程使用 unix dd 从/dev/random 创建一个随机文件。现在,如果我想将 dd 的数据输出写入文件而不是 stdout。所以这是我正在使用的代码,

import subprocess
out_fd = open('test_file','w')
def os_system_dd():
global out_fd
out_fd.write("executing the time dd command\n")
cmd_list = ['time','dd','if=/dev/random', 'of=/home/anand/sys_entropy_random', 'bs=1M' ,'count=5']
a = subprocess.Popen(cmd_list,stdout=out_fd)
a.wait()

if __name__ == '__main__':
os_system_dd()

这不会将 dd 输出打印到文件中,而是将其打印在标准输出中。这是 dd 命令的特定功能吗?还是我遗漏了一些关于子流程如何工作的信息?

最佳答案

dd 在 stderr 而不是 stdout 上输出其调试信息:

import subprocess
out_fd = open('test_file','w')
def os_system_dd():
out_fd.write("executing the time dd command\n")
cmd_list = ['time','dd','if=/dev/random', 'of=/home/anand/sys_entropy_random',
'bs=1M' ,'count=5']
a = subprocess.Popen(cmd_list,stderr=out_fd) # notice stderr
a.communicate()

if __name__ == '__main__':
os_system_dd()

关于python子进程dd和stdout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7581710/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com