- 之前使用
python3
调用shell
命令的时候,都是使用my_str=os.popen(bash_command).read().strip()
这句代码来实现的。但是发现遭遇中文的时候好像会出现崩溃。 - 于是找了一个新的可行的方法,就是使用
bstr=subprocess.Popen(command, stdout=subprocess.PIPE, shell=True).stdout.read()
。
- 注意:这个方法返回的好像是一个bytes。这很好,因为这样就不会遭遇乱码了。
具体的操作如下:
# -*- coding: utf-8 -*-
import os
import subprocess
popen = subprocess.Popen(command, stdout=subprocess.PIPE, shell=True)
origin_strs = popen.stdout.read() # 得到的是 bytes ====》 b'字符串内容'
s = str(origin_strs , encoding='utf-8') # --> bytes 2 string
通过这样的方式,就可以了。