【发布时间】:2021-01-14 11:19:24
【问题描述】:
我正在尝试使用 subprocess.run() 从 Python 脚本运行 dd。如果我从终端运行以下命令,它可以正常工作:
dd if=/dev/zero of=~/file.txt bs=512 count=1000 oflag=dsync
注意:~/file.txt 在命令之前不存在,而是自动创建的。
现在,如果我启动我的 python3 并这样做
cmd='dd if=/dev/zero of=~/file.txt bs=512 count=1000 oflag=dsync'
import subprocess
ReturnVariable = subprocess.run(cmd, shell=True)
我明白了
dd: failed to open '~/file.txt': No such file or directory
~/file.txt 存在和不存在都会发生这种情况。反正它没有多大意义,因为它是输出文件,而不是输入文件。
我做错了什么?为什么我通过subprocess.run()调用相同的命令在同一台机器上不起作用?
【问题讨论】:
-
它没有将目录名称
~扩展到您的主目录。 -
^ ... 你可以使用
os.path.expanduser来做到这一点。 -
@wim 我该如何编辑我的示例来做到这一点?
标签: python python-3.x bash subprocess dd