替换中的路径子流程检查输出()

2024-04-25 13:45:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我用这个:

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

但它不起作用。替换路径的正确方法是什么?你知道吗


Tags: 代码路径trueoutputcheckfindshellusers
1条回答
网友
1楼 · 发布于 2024-04-25 13:45:20

可以使用字符串格式:

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只是一个单独的参数,不需要引用。你知道吗

相关问题 更多 >