Python open()函数详解:文件操作参数与使用技巧指南
Python Open()文件处理简介

更新:2014年11月30日21:45:03提交:mdxy-dxy
本文主要介绍Python Open()文件的处理和使用简介。需要它的朋友可以参考它
1。open()语法
打开(file [,模式[,buffering [,编码[,errors [,newline [,closefd = true]]]]]]]])])
打开功能具有许多参数,并且常用的是文件,模式和编码。
文件文件位置,需要引号
模式文件打开模式,请参见下面3
可接受的缓冲值为0、1、1、1和0表示缓冲区(仅用于二进制模式),1表示线缓冲区(仅用于文本模式),而> 1表示初始化的缓冲区大小;
编码意味着通常使用UTF8或GBK的返回数据使用了哪种编码;
错误的值通常是严格而忽略的。当受到严格处理时,当字符编码出现问题时,将报告错误。当忽略存在问题时,将忽略编码问题,并将继续以下程序。
newline可以使用的值包括无,\ n,\ r,”,'\ r \ n',用于区分newline字符,但此参数仅在文本模式下有效;
CloseFD的值与传递的文件参数有关。默认情况下是正确的。传递的文件参数是文件的文件名。当值为false时,文件只能是文件描述符。什么是文件描述?符号是一个非负整数。在UNIX内核系统中,如果打开文件,将返回文件描述符。
2。python中的文件()和open()之间的差异
两者都可以打开文件并在文件上操作,并具有相似的用法和参数。但是,两个文件打开方法之间存在基本差异。文件是文件类。使用file()打开文件,这等同于此。在构建文件类时,使用python的内置功能使用open()打开文件。建议使用开放
3。参数模式的基本值
特点
意义
'r'
开放阅读(默认)
'W'
开放写作,首先截断文件
'一个'
开放写作,如果存在,则附加到文件的末尾
'b'
二进制模式
't'
文本模式(默认)
'+'
打开磁盘文件以更新(阅读和写作)
'U'
通用新线模式(用于向后兼容;不应在新代码中使用)
r,w,a是打开文件的基本模式,对应于仅读取,只写入和附加模式;
将四个字符B,T, +和U与上述文件打开模式,二进制模式,文本模式,读写模式以及一般线路断裂结合使用,并根据实际条件组合。
通用模式值组合
r或rt 默认模式,文本模式读 rb 二进制文件 w或wt 文本模式写,打开前文件存储被清空 wb 二进制写,文件存储同样被清空 a 追加模式,只能写在文件末尾 a+ 可读写模式,写只能写在文件末尾 w+ 可读写,与a+的区别是要清空文件内容 r+ 可读写,与a+的区别是可以写到文件任何位置
4。测试
测试文件test.txt,内容如下:
Hello,Python www.jb51.net This is a test file
使用一小部分代码测试写入文件以视觉显示其差异
test = [ "test1\n", "test2\n", "test3\n" ]
f = open("test.txt", "a+")
try:
#f.seek(0)
for l in test:
f.write(l)
finally:
f.close()
A+,W+和R+模式之间的差异(测试后恢复test.txt)
A+模式
# cat test.txt Hello, Python www.jb51.net This is a test file test1 test2 test3
W+模式
# cat test.txt test1 test2 test3
R+模式
在将文件写入文件之前,我们将句子f.seek(0)添加到上述代码中,以找到写入位置(启动文件)以直接覆盖字符的数量(请注意,\ n也是一个字符)
# cat test.txt test1 test2 test3 inuxeye.com This is a test file
注意:打开具有R+模式的文件时,必须存在此文件,否则将报告错误,并且“ R”模式也是如此。
其他测试
>>> f = open('test.txt')
>>> f.read() #读取整个文件,字符串显示
'Hello,Python\nwww.jb51.net\nThis is a test file\n'
>>> f.read() #指针在文件末尾,不能再读取内容
''
>>> f = open('test.txt')
>>> f.readline() #一次读一行,指针在该行末尾
'Hello,Python\n'
>>> f.tell() #改行的字符长度
13
>>> f.readline()
'www.jb51.net\n'
>>> f.tell()
30
>>> f.readline()
'This is a test file\n'
>>> f.tell()
50
>>> f.readline()
''
>>> f.tell() #指针停在最后一行
50
>>> f = open('test.txt')
>>> f.readlines() #读取整个文件,以列表显示
['Hello,Python\n', 'www.jb51.net\n', 'This is a test file\n']
>>> f.tell() #指针在最后一行
50
>>> f = open('test.txt','w') #覆盖创建新文件
>>> f.write('Hello,Python!') #如果写入内容小于1024,会存在内存,否则需要刷新
>>> f.flush() #写入到硬盘
>>> f.close() #关闭文件会自动刷新
>>> f.write('Hello,Linuxeye') #关闭后,写失败,提示文件已经关闭
Traceback (most recent call last):
File "", line 1, in
ValueError: I/O operation on closed file