私はUbuntuのターミナルで実行する場合:チルダ(〜)subprocess.Popenで動作していない()
sudo dd if=/dev/sda of=~/file bs=8k count=200k; rm -f ~/file
それが正常に動作します。私はニシキヘビ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