1、脚本

from sys import argv
script,filename = argv
txt = open(filename)
print ("the filename is %s" %filename)
print (txt.read())print ("Type the filename again:")
file_again = input(">")txt_again = open(file_again)
print(txt_again.read())

 

2、执行结果

python 获得中文gbk编码 python读取gbk_解决方法

    

python 获得中文gbk编码 python读取gbk_python 获得中文gbk编码_02

 

 

3、备注

00.txt和01.txt,new.py都是我桌面的文档

python 获得中文gbk编码 python读取gbk_特殊符号_03

     

python 获得中文gbk编码 python读取gbk_python_04

  

python 获得中文gbk编码 python读取gbk_python_05

 

4、读取个别文档时候,提示:UnicodeDecodeError: 'gbk' codec can't decode byte 0xa2 in position 50: illegal multibyte sequence

 使用python的时候经常会遇到文本的编码与解码问题,其中很常见的一种解码错误如题目所示,下面介绍该错误的解决方法,将‘gbk’换成‘utf-8’也适用。 
(1)首先在打开文本的时候,设置其编码格式,如:open(‘1.txt’,encoding=’gbk’); 
(2)若(1)不能解决,可能是文本中出现的一些特殊符号超出了gbk的编码范围,可以选择编码范围更广的‘gb18030’,如:open(‘1.txt’,encoding=’gb18030’); 
(3)若(2)仍不能解决,说明文中出现了连‘gb18030’也无法编码的字符,可以使用‘ignore’属性进行忽略,如:open(‘1.txt’,encoding=’gb18030’,errors=‘ignore’); 
(4)还有一种常见解决方法为open(‘1.txt’).read().decode(‘gb18030’,’ignore’)