- 之前使用
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
通过这样的方式,就可以了。

本文介绍了一种在Python中调用包含中文字符的Shell命令的方法,解决了因中文字符导致的编码问题。通过使用subprocess模块并指定正确的编码方式,可以避免乱码出现。
31万+

被折叠的 条评论
为什么被折叠?



