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)

