如何执行复杂的"查找" python中的linux shell命令

时间:2017-07-13 10:32:57

标签: python linux

我需要执行以下命令:

find PATH -type f -exec du -h --all {} +

我试图这样做:

import subprocess

result = subprocess.Popen(["find", PATH, "-type", "f", "-exec", "du", "-h", "--all", "{}", "+"], shell=True, stdout=subprocess.PIPE).communicate()[0]
print(result)

结果我得到了一些垃圾。我做错了什么?

2 个答案:

答案 0 :(得分:3)

shell=True的第一个参数是一个应由shell解析的字符串时,您应该只使用Popen()。如果它是一个数组,那么您已经完成了必要的解析,并且不应该使用shell=True

答案 1 :(得分:0)

import commands

commands = r'''find PATH -type f -exec du -h --all {} +'''
result = commands.getstatusoutput(command)[0]
print("{}".format(result))