使用subprocess-Python将大文件写入磁盘时调用progress

使用subprocess-Python将大文件写入磁盘时调用progress,python,command-line,terminal,subprocess,Python,Command Line,Terminal,Subprocess,我使用子流程模块将大文件写入usb闪存驱动器,如下所示: 导入子流程 subprocess.Popen(“diskutil unMount/dev/diskX”,shell=True) subprocess.Popen(“sudo dd if='file_name'of='/dev/diskX',shell=True) 最后,我只想添加一行,每隔几秒钟获取完成百分比,这样我就可以看到非常大的传输速度有多快 我知道当我在终端中运行这个命令时,我可以键入“SIGINFO”并在传输时按“Ctrl+T”

我使用子流程模块将大文件写入usb闪存驱动器,如下所示:

导入子流程
subprocess.Popen(“diskutil unMount/dev/diskX”,shell=True)
subprocess.Popen(“sudo dd if='file_name'of='/dev/diskX',shell=True)

最后,我只想添加一行,每隔几秒钟获取完成百分比,这样我就可以看到非常大的传输速度有多快

我知道当我在终端中运行这个命令时,我可以键入“SIGINFO”并在传输时按“Ctrl+T”来获得传输的金额,但我不知道如何将其转换为Python脚本


我在卸载磁盘后进行传输,因此我不能在驱动器传输新文件时查询它们,并将其作为%与原始文件大小进行比较。

在不使用
dd
(纯python)的情况下执行此操作将使您的任务更轻松。例如,检查
shutil.copyfileobj
(您必须使用
sudo
运行python脚本)@Jean Francois Fabre-抱歉,我刚才澄清了我的问题。我使用了
shutil.copyfileobj
,虽然效果很好,但它并没有真正解决我最重要的问题,即如何在循环中用控制的缓冲区大小+进度条将传输%吐出。mix
write
。例如:或