文件编码

这是只保留srt文件以英文字母开头的行 的Python程序:

 infile = open('About.Time.2013-en.srt''r')

outfile = open('About.Time.2013-en.txt''w')

for line in infile:
    if str.isalpha(line[0]):
        outfile.write(line)

infile.close()
outfile.close()

 我的笔记本是win8-32位系统, Python版本是3.4.1.

用Windows自带的记事本改变srt文件的存储格式 分别为ANSI, Unicode, Unicode big endian, UTF-8

只有ANSI格式下我的这个脚本能够正常运行.

否则报错:

Traceback (most recent call last):
  File "D:About.Time.2013-en.py", line 4, in <module>
    for line in infile:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xfe in position 0: illegal multibyte sequence

显然是编码问题, win8里面我安装的Python估计是默认以Windows记事本所带的ANSI编码读文本.

那我要是指定编码格式呢?我知道Java里面是

<Java code>  //回去翻翻书在来

深入到byte的层面, 文本文件的编码又究竟是怎么一回事呢? 记得姜老师提到过BOM

\整理一下再来 

原文地址:https://www.cnblogs.com/likeatree/p/4301851.html