当我在我的Ubuntu终端中运行:
sudo dd if=/dev/sda of=~/file bs=8k count=200k; rm -f ~/file
它运行良好。
如果我通过Python的subprocess.Popen()
运行它:
output, err = subprocess.Popen(['sudo', 'dd', 'if=/dev/' + disk, 'of=~/disk_benchmark_file', 'bs=8k', 'count=200k'], stderr=subprocess.PIPE).communicate()
print err
它不起作用。我得到的错误是:
dd:无法打开'~/disk_benchmark_file':没有那个文件或目录
如果我在Popen()
调用中将波浪号~
更改为/home/user
,那么它就可以工作了!
为什么会这样?对我来说更重要的是:如何使其工作?我不知道生产环境中用户名将是什么。
$HOME
了吗? - Will