常用python执行shell的命令
一、os.system(“pwd”)1.返回值依赖于系统,程序阻塞等待返回直接返回系统的调用返回值windows、Linux下是不一样的2.样例二、os.popen(command[, mode[, bufize]])1.执行后的结果是个字符串2. 使用import osresult = os.popen("pwd").read()3.样例三、commands模块(Python2中的模块)1. 有
·
一、os.system(“pwd”)
1.
- 返回值依赖于系统,程序阻塞等待返回
- 直接返回系统的调用返回值
- windows、Linux下是不一样的
2.样例
二、os.popen(command[, mode[, bufize]])
1. 执行后的结果是个字符串
2. 使用
import os
result = os.popen("pwd").read()
3.样例
三、commands模块(Python2中的模块)
1. 有以下三个函数:
函数 | 说明 | 备注 |
---|---|---|
getoutput(cmd) | Return output (stdout or stderr) of executing cmd in a shell. | 返回字符串 |
getstatus(file) | Return output of “ls -ld file” in a string. | 已被丢弃,不建议使用 |
getstatusoutput(cmd) | Return (status, output) of executing cmd in a shell. | 返回一个元祖 |
2. 使用
import commands
a, b = commands.getstatusoutput("pwd")
a是退出的结果,b是输出的结果
3.样例
- python 3.0 之后移除此命令,使用 subprocess代替
四、 subprocess模块
- subprocess 模块启动一个新进程,并连接到它们的输入/输出/错误管道,从而获取返回值。
. 样例
1. subprocess.run()
- subprocess.run(args, *, stdin=None, input=None, stdout=None, stderr=None, capture_output=False, shell=False, cwd=None, timeout=None, check=False, encoding=None, errors=None, text=None, env=None, universal_newlines=None)
2. Popen()
subprocess的核心,子进程的创建和管理都靠它处理。
1)subprocess.Popen(command, shell=True)
- command是bash命令时,shell必须为True,在shell下执行command命令
- 当command是可执行文件时,shell可任意
2)Popen对象的方法
- poll():
- 检查进程是否终止,如果终止返回 returncode,否则返回 None。 wait(timeout): 等待子进程终止。
- communicate(input,timeout):
- 和子进程交互,发送和读取数据
- send_signal(singnal):
- 发送信号到子进程 。
- terminate():
- 停止子进程,也就是发送SIGTERM信号到子进程。
- kill():
- 杀死子进程。发送SIGKILL 信号到子进程。
3)构造函数:
- class subprocess.Popen(args, bufsize=-1, executable=None, stdin=None, stdout=None, stderr=None,
preexec_fn=None, close_fds=True, shell=False, cwd=None, env=None, universal_newlines=False,
startupinfo=None, creationflags=0,restore_signals=True, start_new_session=False, pass_fds=(),
*, encoding=None, errors=None)
4)样例:
- 创建一个子进程,然后执行一个简单命令
更多推荐
已为社区贡献1条内容
所有评论(0)