python3 读写git log 遭遇中文的崩溃及乱码的解决

  • 之前使用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)