我正在使用这个:
output2 = subprocess.check_output("find /users/experiment_in14 -empty", shell=True)
这对我来说非常有用,但我想替换完整路径,以便在代码开头只更改一次路径,而不是到处都是。 我在想这样的事情:
original = /users/experiment_in14
output2 = subprocess.check_output("find ,original, -empty", shell=True)
print output2
但它不起作用。这是替换路径的正确方法吗?
答案 0 :(得分:0)
您可以使用字符串格式:
original = "/users/experiment_in14"
output2 = subprocess.check_output("find {} -empty".format(original), shell=True)
print output2
但是你需要注意包含shell元字符的路径。您必须确保路径不使用元字符或显式quote the value:
import pipes
original = "/users/experiment_in14"
output2 = subprocess.check_output("find {} -empty".format(pipes.quote(original)), shell=True)
print output2
您实际上并不需要在此使用shell=True
;你可以通过单独传递参数并且不使用shell来阻止任何问题:
original = "/users/experiment_in14"
output2 = subprocess.check_output(['find', original, '-empty'])
print output2
此处original
只是一个单独的参数,不需要引用。