系列文章目录
文章目录
subprocess模块
主要用于执行系统命令:
-
第一步:创建Popen对象–
subprocess.Popen('命令', shell, stdout, stderr)
p = subprocess.Popen( 'dir', shell=True, cwd=r'c:\\',stdout=subprocess.PIPE, stderr=subprocess.PIPE)
参数:
- 命令为字符串类型或序列类型(如:列表,元组等)。
- shell为True表示在系统的shell中运行该命令。
- stdin stdout和stderr:分别表示子程序的标准输入、标准输出(命令正确执行时的结果输出至此)和标准错误(命令执行错误时的信息输出至此)。
实参可以是管道或一个文件对象,还有None。 - cwd:用于设置子进程的当前目录。
-
第二步:读取执行结果–
popen对象.stdout.read()
read()
返回的是二进制信息,所以要解码,编码信息根据平台来指定。# 读取执行结果 res = p.stdout.read().decode('GBK') print(res) """ 打印: 驱动器 C 中的卷是 系统 卷的序列号是 DA66-4CC6 c:\ 的目录 2021/07/08 13:20 <DIR> Microsoft 2021/07/08 13:17 <DIR> Program Files 2021/07/07 22:01 <DIR> Program Files (x86) 2021/07/07 11:32 <DIR> Users 2021/07/11 08:26 <DIR> Windows 0 个文件 0 字节 5 个目录 35,750,768,640 可用字节 """ # 读取错误信息 res = p.stderr.read().decode('GBK')