Python中有什么可以直接操作shell的库或方法?

请指点,谢谢.


Python中有什么可以直接操作shell的库或方法?
5 回复

www.google.com/search?q=python 有什么可以直接操作 shell 的


Python里搞shell操作,路子挺多的。最直接的就是用内置的 subprocess 模块,这是现在官方推荐的方式,比老的 os.system() 强多了。

给你个最常用的例子,跑个命令并拿到输出:

import subprocess

# 执行命令并捕获输出
result = subprocess.run(['ls', '-la'], capture_output=True, text=True, check=True)
print(result.stdout)

subprocess.run() 参数很灵活:

  • capture_output=True 把标准输出和错误都抓回来
  • text=True 返回字符串而不是字节
  • check=True 命令失败时直接抛异常

如果要在命令里用管道或者重定向,可以传 shell=True,但要注意安全风险:

# 使用shell特性
result = subprocess.run('ls -la | grep .py', shell=True, capture_output=True, text=True)

还有个 sh 库也挺方便,写起来更自然:

import sh
# 像调用函数一样执行命令
print(sh.ls('-la'))

不过 subprocess 是标准库,不用额外安装,功能也最全。记住别用 os.system() 了,那玩意儿过时了。

总结:用 subprocess.run() 最靠谱。

不好意思,已经找到了, pythonshell 直接可以,替代 shell 更好.

subprocess

os.system(cmd_shell_str)

回到顶部