python2 7更改編碼型別 根據系統替換分隔符

2021-09-26 09:06:38 字數 1415 閱讀 1614

1、在系統預設編碼為ascii的系統中,儲存中文到檔案是亂碼:「unicodedecodeerror: 『ascii』 codec can』t decode byte 0xe7 in position 7: ordinal not in range(128)"

2、在window和linux檔案路徑分隔符不相同,同乙個指令碼在不同系統找不到對應路徑/檔案

import sys

# 如果系統預設編碼為ascii,則設定編碼格式為utf8

if sys.getdefaultencoding() == 'ascii':

reload(sys)

sys.setdefaultencoding('utf8')

import re

import os

def sepchange(path):

'''路徑分隔符替換

:param path: 路徑

:return: 替換過系統分隔符的路徑

'''if re.search('/',path):

path = path.replace('/',os.sep)

elif re.search(r'\\',path):

path = path.replace(r'\\',os.sep)

else:

pass

return path

完整的sysencoding.py檔案內容:

# coding:utf-8

'''note:

更換路徑間隔符

更換編碼格式為'utf-8'

author:qred

date:2019/8/20

'''import re

import os

import sys

if sys.getdefaultencoding() == 'ascii':

reload(sys)

sys.setdefaultencoding('utf8')

def sepchange(path):

'''路徑分隔符替換

:param path: 路徑

:return: 替換過系統分隔符的路徑

'''if re.search('/',path):

path = path.replace('/',os.sep)

elif re.search('\\',path):

path = path.replace('\\',os.sep)

else:

pass

return path

在需要進行編碼格式的指令碼頭部引入該檔案,即可實現ascii轉utf8的變換。

如果指令碼中涉及不通作業系統的檔案路徑轉換,可以呼叫sepchange實現檔案路徑的快速轉換。

python2 7中文編碼 python2 7

我從外部api中獲得了乙個字串 u4ece u8d77 u70b9 u5411 u6b63 u5357 u65b9 u5411 u51fa u53d1,u884c u9a76170 u7c73,u76f4 u884c u8fdb u5165 u4e2d u5173 u6751 u4e1c u8def...

python2 7編碼問題

在使用python從庫里拿到乙個字段進行比較時,出現以下錯誤 ascii codec can t decode byte 0xe5 in position 3 ordinal not inrange 128 原因 python的str預設是ascii編碼,和unicode編碼衝突,而從資料庫中拿到的...

python2 7編碼的問題

python2.7預設的ascii編碼,遇到中文時會出現一大堆毛病。1 對於中文的輸出,特別是輸出到檔案中去,需要在編碼開題加上 coding utf 8,中文字元需要做相應的編碼轉換。如 str u 啦啦啦,德瑪西亞 e str.encode utf 8 with open out.txt w a...