Python运行Windows命令行

  1. os.system
    最简单直接的调用方法,对于没有输出的命令行,推荐使用这个方法;
    缺点:\color{red}{就是无法获取cmd命令的输出。}
import os
cmd='ls'
os.system(cmd)
  1. os.popen
    同意基于os模块,但是可以获取到以字符串形式的输出;
import os
cmd='ls'
res=os.popen(cmd)
OutputStr=res.read()
print(OutputStr)
res.close()

由于可以关闭这个返回流,可以用下面的写法;

import os
cmd='ls'
with os.popen(cmd, 'r') as f:
    print(f.read())

有时候遇到乱码,报错:UnicodeDecodeError: 'gbk' codec can't decode byte 0xe4 in position 76
可以用如下方法:

import os
cmd='ls'
with os.popen(cmd, 'r') as f:
    print(f.buffer.read().decode('utf-8'))

关于编码问题,引用一个链接:https://www.v2ex.com/t/458543

  1. subprocess.Popen
    用处不大,保留在此,有需要再补充。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。