我必须进行大量文件复制、移动、svn 签出命令、目录检查等操作,我正在尝试编写一个脚本来帮我完成这些操作。我掌握了基本的 Python 语法,但不确定如何使用 Python 执行 Linux 命令。我知道所需的 Linux 命令,例如 sudo apt-get install subversion,但我不知道如何用 Python 来执行它。
具体来说,有人可以举例说明如何:
- 检查某个包(如 svn)是否已安装,如果没有则安装。我知道这是一个简单的 if 语句,但不知道如何编写它...
- 检查是否安装了具有特定名称的文件夹,如果没有,则在桌面/其他目录中创建该文件夹。我认为与上面的类似。
- 移动到某个目录并执行命令(比如我想在某个目录中提取 .tgz 文件)
还有更多,但我想掌握基本原理并真正学习如何使用 Python 脚本执行 Linux 命令。感谢您的时间~
编辑:我特别需要使用 python
答案1
你当然可以用 Python 的内置功能做任何事情操作系统和子进程模块。
一个稍微棘手的事情是,如果你想让你的脚本与你调用的程序“交互”(比如“等到它打印出‘按 Enter 继续’,然后发送一个 Enter 键) - 你可以使用期望模块。
对于稍微高级一点的方式,请查看织物库 - 除了运行本地命令之外,它还允许您通过 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)
读起来几乎像诗歌:) 相比之下,Bash 中的类似代码看起来就像难以理解的混乱......