python - 如何在 python 中执行复杂的 "find"linux shell 命令

标签 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)

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

最佳答案

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

关于python - 如何在 python 中执行复杂的 "find"linux shell 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45078097/

相关文章:

php - centos php服务器上的文件上传错误日志

linux - php网站+linux的独立文件服务器

python - 如何将列中的整数替换为另一个文件、python 或 awk 中包含的另一个整数

python - 我如何通过麦克风接收语音输入 - python

python - 如何在 matplotlib.pyplot 中关闭自动缩放

c++ - 如何阅读整个命令行?

linux - stbt 批处理运行无法在 C# 代码中运行

python - 如何在同一 session 中将 selenium webdriver 从 headless 模式设置为正常模式?

python - Python 中 Twitter 的情感分析

c++ - 未定义的函数引用错误