Python 脚本 - 如何执行 linux 命令?

use*_*638 3 python scripts 12.04

我必须做一堆文件复制、移动、svn check out 命令、目录检查等,我正在尝试制作一个脚本来为我做这件事。我有基本的 python 语法,但我不确定如何使用 python 来执行 linux 命令。我知道需要的 linux 命令,例如 sudo apt-get install subversion 我只是不知道如何将 python 包裹起来。

具体来说,任何人都可以举例说明如何:

  • 检查是否安装了软件包(如 svn),如果没有安装。我知道这是一个简单的 if 语句,但不知道如何编写它...
  • 检查是否安装了具有特定名称的文件夹,如果没有在桌面/其他目录上创建它。与上面我假设的类似。
  • 移动到某个目录并执行命令(就像我想在某个目录中提取一个 .tgz 文件一样)

还有更多,但我想掌握基本原理并实际学习如何使用 python 脚本执行 linux 命令。谢谢你的时间~

编辑:我特别需要使用 python

Ser*_*gey 5

您当然可以使用ossubprocess模块中的Python 内置内容来完成所有工作。

如果你想让你的脚本与你正在调用的程序“交互”(比如“等到它打印‘按 Enter 继续’,然后给它发送一个 Enter 按键),那就有点棘手了——为此你可以使用pexpect模块。

对于稍微高级一点的方法,请查看Fabric库 - 除了运行本地命令之外,它还允许您通过 SSH 在远程机器上轻松执行代码。

使用 Fabric 的一小部分代码示例:

if "dirty" in api.local("git describe --dirty", capture=True):
    print colors.red("""Your repository is dirty, commit any changes first""")
    sys.exit(1)
Run Code Online (Sandbox Code Playgroud)

读起来几乎像诗歌:) 相比之下,Bash 中的类似代码看起来像是一团糟……