python: py2下 中文 的 檔案讀寫 及 列印
阿新 • • 發佈:2019-01-31
讀寫中文檔案時,不需要考慮編碼的情況。此時雖然可以正常從檔案中讀取中文,也可以正常地將中文寫入檔案中,但是無法正常列印中文欄位到螢幕上:
# coding=utf-8
SRC_PATH = './src.txt'
DST_PATH = './dst.txt'
src_file = open(SRC_PATH, 'r')
dst_file = open(DST_PATH, 'w')
for line in src_file.readlines():
dst_file.writelines(line)
print line
src_file.close()
dst_file.close()
琛��誇腑蹇�����浜���
����涓�蹇��ㄤ�嫻楓��
Hello world! Hello python!
列印中文欄位時,需要提前把系統編碼由 ascii 轉換到 utf-8:
# coding=utf-8
SRC_PATH = './src.txt'
DST_PATH = './dst.txt'
import sys # new added
reload(sys) # new added
sys.setdefaultencoding('utf-8') # new added
src_file = open(SRC_PATH, 'r')
dst_file = open(DST_PATH, 'w')
for line in src_file.readlines():
dst_file.writelines(line)
print line.encode('gb18030') # new added
src_file.close()
dst_file.close()
行政中心是北京。
金融中心在上海。
Hello world! Hello python!
檢視系統編碼的具體轉換狀況:
# coding=utf-8
import sys
print ('origin_encoding = {}'.format(sys.getdefaultencoding()))
reload(sys)
sys.setdefaultencoding('utf-8')
print ('new_encoding = {}\n'.format(sys.getdefaultencoding()))
origin_encoding = ascii
new_encoding = utf-8
在不轉換系統編碼下直接輸出中文欄位:
print u'中文'
print u'中文'.encode('gbk')
print u'中文'.encode('gb18030')
print
print '中文'
print u'中文'.encode('utf-8')
中文
中文
中文
涓���
涓���
在轉換系統編碼下直接輸出中文欄位:
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
print u'中文'
print '中文'.encode('gbk')
print '中文'.encode('gb18030')
print u'中文'.encode('gbk')
print u'中文'.encode('gb18030')
print
print '中文'
print '中文'.encode('utf-8')
print u'中文'.encode('utf-8')
中文
中文
中文
中文
中文
涓���
涓���
涓���