文件编码

这是只保留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

\\整理一下再来

时间: 2024-08-27 05:38:40

文件编码的相关文章

Linux下查看文件编码,文件编码格式转换和文件名编码转换

linux相关   2008-10-07 10:46   阅读1392   评论0   字号: 大大  中中  小小  如果你需要在Linux中 操作windows下的文件,那么你可能会经常遇到文件编码转换的问题.Windows中默认的文件格式是GBK(gb2312),而Linux一般都是 UTF-8.下面介绍一下,在Linux中如何查看文件的编码及如何进行对文件进行编码转换. 查看文件编码 在Linux中查看文件编码可以通过以下几种方式: 1.在Vim中可以直接查看文件编码 :set file

Python学习笔记八:文件操作(续),文件编码与解码,函数,递归,函数式编程介绍,高阶函数

文件操作(续) 获得文件句柄位置,f.tell(),从0开始,按字符数计数 f.read(5),读取5个字符 返回文件句柄到某位置,f.seek(0) 文件在编辑过程中改变编码,f.detech() 获取文件编码,f.encoding() 获取文件在内存中的编号,f.fileno() 获取文件终端类型(tty.打印机等),f.isatty() 获取文件名,f.name() 判断文件句柄是否可移动(tty等不可移动),f.seekable() 判断文件是否可读,f.readable() 判断文件是

【转载】关于Python脚本开头两行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 &ndash; 指定文件编码类型

下面的内容来自:http://www.cnblogs.com/blueskylcc/p/5332642.html, 对方也是转的,不过没有找到转载的出处: 1.#!/usr/bin/python 是用来说明脚本语言是 python 的 是要用 /usr/bin下面的程序(工具)python,这个解释器,来解释 python 脚本,来运行 python 脚本的. 2.# -*- coding: utf-8 -*- 是用来指定文件编码为 utf-8 的 详情可以参考:PEP 0263 - Defin

centos 文件编码转码

一直以来centos 下 文件转码都用的是iconv这个命令,最近发现了个enca,比iconv好用多了. iconv示例: iconv -f encoding -t encoding inputfile -o outfile -f  需要转码文件的原编码 -t 需要转为的编码 -o 输出的文件 iconv 弊端,需要知道源文件的原始编码才行. enca: yum -y install enca  #依赖epel源 查看当前文件编码: # enca -L zh_CN host0740960_20

(转)剖析Linux文件编码的查看及修改

Linux文件编码的查看和修改都有不止一种做法,如果你需要在Linux中操作windows下的文件,那么很可能会经常遇到文件编码转换的问题,如何进行这项工作,也应该是经常工作在双系统下的操作者的必须掌握的知识. Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8.下面介绍一下,在Linux中如何查看文件的编码及如何进行对文件进行编码转换. 查看文件编码 在Linux中查看文件编码可以通过以下几种方式: 1.在Vim中可以直接查看文件编码 :set fileen

python声明文件编码,必须在文件的第一行或第二行

#coding=utf-8和# -*- coding: utf-8 -*-的作用 – 指定文件编码类型 注意的两点: 1.声明必须在文件的第一行或第二行: 2.coding后面必须紧跟冒号或等号,#coding : utf-8是错的. 例: 声明编码前有字符串 1 '''testing user longin''' 2 #coding:utf-8 3 4 print u'''登录相关的测试''' 或 声明编码位于第三行 1 #'test' 2 3 #coding:utf-8 4 5 print

linux下查看文件编码及修改编码

http://blog.csdn.net/jnbbwyth/article/details/6991425 查看文件编码在Linux中查看文件编码可以通过以下几种方式:1.在Vim中可以直接查看文件编码:set fileencoding即可显示文件编码格式.如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在~/.vimrc 文件中添加以下内容: set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936 这样,就可以

[AS3]as3用ByteArray来对SWF文件编码加密实例参考

[AS3]as3用ByteArray来对SWF文件编码加密实例参考,简单来说,就是将 swf 以 binary 的方式读入,并对 ByteArray 做些改变,再重新存成 swf 档.这个作业当然也可能应该是由 Server 进行 步骤一,随便建立一个 swf 当作要被加密的内容档案,怎么做不管,假设档名 asset.swf. 步骤二,做一个用来进行加密工作的 flash: var ul:URLLoader = new URLLoader(); ul.dataFormat = URLLoader

jsp_设置文件编码

jsp有两种方法可以设置文件编码: (1)<%@page language="java" contentType="text/html;charset=utf-8"%> (2)<%@page language="java" contentType="text/html" pageEncoding="utf-8"%> 那么这两种方法有什么区别呢: pageEncoding指的是JSP文

文件编码和文件内的字符串字面值编码是两个概念

我们知道,CALabel的字符串使用的是UTF8编码,通常在xcode下,直接CALabel *p = ...; p->setText("汉字"),显示汉字是没有任何问题的,但是,在VS2013中却显示的是乱码.很多人在群里面问了,我都答:请使用UTF8编码.他说,我的文件是UTF8格式的啊.呵呵,没那么简单好吗,文件编码和字符串字面值编码是两个概念. VS2013的一条预编译指令#pragma execution_character_set("utf-8")