python - 来自 python 的 bash 命令

标签 python bash

我正在寻找在 python 中使用 bash 命令的最佳方式。有哪些方法?我知道 os.system 和 subprocess.Popen。

我试过这些:

bootfile = os.system("ls -l /jffs2/a.bin | cut -d '/' -f 4")
print bootfile

这会按预期返回 a.bin,但之后也会返回 0,因此打印:

a.bin
0

bootfile 现在被设置为 0。下次我打印 bootfile 时它只显示为 0。我猜这是退出值,我如何阻止这个值干扰?

我也试过:

bootfile = subprocess.Popen("ls -l /jffs2/a.bin | cut -d '/' -f 4")
print bootfile

但这似乎破坏了脚本,因为我没有得到任何返回,我做对了吗?

还有这些哪个更好,为什么?还有其他方法吗?首选方法是什么?

最佳答案

使用 os.readlink(由@kojiro 提议)和 os.path.basename 只获取名称文件:

os.path.basename(os.readlink('/jffs2/a.bin'))

关于python - 来自 python 的 bash 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15136311/

相关文章:

linux - Bash 数组和负下标,是还是不是?

linux - 了解 bash 大括号扩展

linux - 如何在XML文件中的单词后面添加变量内容

java - 由于 docker pull,Shell 脚本在通过 ProcessBuilder 运行时过早退出

python - 为什么反斜杠出现两次?

node.js - npm postinstall 使用多个命令失败

python - 如何将字典组合成嵌套字典?

python - 一组独特的列表

python - 运行终端命令,因为启动 react 与手动不同(Linux树莓派)

c++ - 将 python 列表包装为 unsigned char*