文件读取:数组
codecs.open (文件路径、方法和编码)安全性
文件路径- -文件路径函数
method--开启方式,r为读取,w为写入,rw为读写码
编码- -文件编码,中文文件使用utf-8.net
一. python打开文件代码以下:指针
f=open(d:(test.txt ),) w ) )
说明:
第一个参数是包含路径的文件名。
第二个参数是打开的模式模式代码
' r ' :只读(默认。 如果文件不存在,则抛出错误)
' w ' :仅写入(如果文件不存在,则自动创建文件) ) )。
' a ' :附加在文件末尾
' r ' :读写XML
要以二进制文件打开文件,必须在模式后加上字符“b”。 例如,' rb''wb '等博客
2、python读取文件的内容f.read(size )
参数size表示读出的数目,并且可以省略。 如果省略size参数,则会读取文件的所有内容。
f.readline ) )读取文件中的一行内容f.readlines ) )将所有行读取到数组中[line1,line2, lineN]。
此方法常用于避免将所有文件的内容加载到内存中,从而提高效率。
3、python写文件f.write(string ) )
将字符串写入文件。 写入完成后,必须在字符串后添加“n”,然后在f.close ()中关闭文件
4、档案内容定位
f.read ) )读取后,文件指针到达文件的末尾,再次读取f.read ) )可以看到读取了空内容。 如果要重新读取所有内容,必须将指针移动到文件的开头。
f.seek(0) )。
该函数的格式如下。 单位为bytes(f.seek(offset,from_what ) from_what表示开始读取的位置,offset表示从from_what进一步移动一定量的距离。 例如f.seek ) 10,3 )
from_what的值为0表示文件的开始,也可以省略。 缺省值为0,即文件的开头。 以下是完整的示例。
f=open('/tmp/workfile ',' r ' ) )
f.write(0123456789abcdef ) )。
f.seek(5) # Go to the 6th byte in the file
f .读(1) )。
f.seek (-3,2 ) # Go to the 3rd byte before the end
f .读(1) )。
5、关闭文件并释放资源文件操作完成后,请记住关闭文件f.close ()并释放资源,以便剩余的程序使用
但是,读写ASCII或gbk编码格式的文件比较简单,读写如下:
# coding=gbk
f=open(c:/intimate.txt ),(r ) ) r表示文件打开模式,即只读模式
s1=f.read ()
s2=f.readline () )。
s3=f.readlines(#读取所有内容
f.close () )
f=open(c:/intimate.txt ),(w ) ) w刻录文件
11f.write(S1 ) )。
12f.writelines(S2 )没有writeline
13 f.close () )
f.writelines不输出换行符。
读写python unicode文件:
# coding=gbk
导入代码
f=codecs.open (' c :/intimate.txt '、' a '和' utf-8 ' )
f.write(u '中文) )。
s='中文'
f.write(s.decode ) ' gbk ' ) )
f.close () )
f=codecs.open (' c :/intimate.txt '、' r '和' utf-8 ' )
s=f.readlines ()
f.close () )
for line in s:
printline.encode('gbk ' ) )。
python代码文件编码
py文件的默认代码是ASCII代码,中文在显示时会将ASCII转换为系统的默认代码,从而导致错误。 syntax error 3360非辅助字符。 要将编码说明添加到代码文件的第一行或第二行:
# coding=utf-8 ##用utf-8编码保存中文字符
直接输入的字符串(如print '中文'上所示)将根据代码文件的编码进行处理,但使用unicode编码有以下两种方法:
s1=u '中文' #u表示以unicode方式存储信息
s2=unicode (中文)、gbk (gbk ) ) ) ) ) ) )。
unicode是一个内置函数,第二个参数指示源字符串的编码格式。
decode是任何将字符串转换为unicode格式的字符串中包含的方法,参数指示源字符串的编码格式。
encode也是字符串中包含的用于将字符串转换为参数指定格式的方法。
python字符串编码
用u '汉字'制作的是unicode型,不用的话是str型
str的编码与系统环境相关,通常是在sys.getfilesystemencoding () )中获得的值
因此,要从unicode迁移到str,请使用encode方法
从str转移到unicode,所以使用decode
例如:
# coding=utf-8 #默认编码格式为utf-8
s=u '中文' #unicode代码的字符
将prints.encode(utf-8 ) )转换为utf-8格式并输出
print s #的效果与上述相同,就像默认情况下直接转换为指定的代码一样
个人总结:
u=u'unicode代码字符'
g=u.encode(gbk ) #将转换为gbk格式
此时,print g #为乱码,因为当前环境为utf-8,所以gbk编码字符为乱码
str=g.decode(gbk ) ).encode (utf-8 ) ) g )以gbk编码格式读取,转换为utf-8格式输出
print str #正常显示中文
安全的方法:
s.decode(gbk )、(ignore ) )、encode (utf-8 ) )以gbk码读取。 当然读取gbk代码形式的文字。
忽略错误的编码并将其转换为utf-8编码输出
由于decode函数的原型是decode([encoding],[errors='strict'] ),因此第二个参数可以控制错误处理策略。 缺省参数为严格,表示如果出现非法字符,则会抛出异常。
如果设置为ignore,则会忽略非法字符。
如果设置为replace,怎么办? 代替非法字符;
如果设置为xmlcharrefreplace,则使用XML字符引用。