您的位置:首页 > 编程语言 > Python开发

python3.x文件IO学习笔记

2016-05-14 17:22 405 查看
昨天写小程序的时候遇到了文件IO的问题,今天决定学习学习。

1.打开文件

原来自己做调试的时候是把要调试的文件放在python目录下,或者是用sys加目录,或者设置环境变量,但是open函数支持路径open(r'c:\test\mytxt.txt')

2.文件模式

a.用w会覆盖原有的名字相同的文件,如果想持续地写入,用a模式

   如果想获取数据再修改,先用r后用a

b.‘+’参数表示读和写都可以,可以用到任何模式中

        c.'b'模式:b模式处理二进制文件,比如声音或者图像

       为什么要用二进制模式?

不同系统有不同的换行符,Windows下是\r\n, UNIX下是\n,为了跨平台运行
pyhton做了一些转换,比如在Windows下,读取文件时, 将\r\n换成\n,写入
时,把\n换成\r\n,但是声音要是这么处理,数据可能就会损坏了(使用u参数
可以统一换行符)

3.缓冲

如果参数是0,  没有缓冲

如果参数是1, 有,大于1表示缓冲的字节。

如果参数是负数, 表示使用默认的缓冲区大小。

4.读

a.按着字节读取

file = open(r'c:\\test\mytxt.txt', 'r')#r可以省略

file.read(n)  #n为字节

file.read()读取剩下的字节

b.按着行读取

file.readline(n),和file.read(n)一样

file.readline()返回一行

file.readlines()读取文件所有行并且返回列表

file.readlines()也有参数

d.把整个文件迭代器list,然后用list的方法处理

5.写

a.write()

write会把内容追加到文件已有部分的后面

b.writelines()

writelines可以接受字符串列表,不会自动换行

6.seek和tell

file.tell可以告诉你文件浏览到什么位置了,seek可以重置位置

7.关闭文件

写入文件后需要关闭,读取文件后,关闭不关闭都无所谓

方案1:

try:

#do something

finally:

file.close()

方案2:

with open('myfile.txt') as file:

#do something

关于上下文管理器的东西,可以看python文档中contextlib和相应部分

8.对文件内容迭代

a.对字节处理

f= open('sometext')

while True:

char = f.read(1)

if not char
:

break

print(char)

b.按着行处理

c.对整个文件处理(文件不大的情况):

f= open('sometext')

for char in f.read():

print(char)

d.使用fileinput模块

e.文件对象在python2.2以后可以迭代,意味着它可以放在for循环中

f= open('sometext')

for line in f:#与上面不同,此处是迭代

print(line)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: