我需要为subprocess.call命令提供变量名

时间:2017-07-15 14:38:31

标签: python python-2.7 python-3.x

这是我的代码:

import subprocess
subprocess.call("rm /home/winpc/Desktop/test.html", shell=True)

此代码正常运行。我需要进行以下更改。

file_name="test.html"
dir_path="/home/winpc/Desktop"

我需要使用上面提到的变量删除上面的文件test.html。我怎么能这样做。

2 个答案:

答案 0 :(得分:2)

首先,正确构建完整的文件名:

full_name = os.path.join(dir_path, file_name)

然后,将列表作为call的第一个参数传递:

subprocess.call(["rm", full_name])

(在现实生活中,你根本不会使用call;你使用os.remove(full_name)。)

答案 1 :(得分:1)

您可以使用字符串格式:

rm_file = "/home/winpc/Desktop/test.html"
subprocess.call("rm {}".format(rm_file), shell=True)

顺便提一下,我建议尽可能不使用shell=True;而是将参数作为列表传递:

rm_file = "/home/winpc/Desktop/test.html"
subprocess.call(["rm", rm_file])