python之文件操作read
1、’r’只读模式,[文件不存在就抛出异常IOError]
with open('a.txt', 'r', encoding='utf-8') as f:
print(f.readable())
True
2、’w’只写模式,[不可读,不存在则创建,存在则删除文件的内容]
with open('a.txt', 'w', encoding='utf-8') as f:
print(f.readable())
False
3、’a’追加模式,[不可读,不存在则创建,存在则只追加内容]
with open('a.txt', 'a', encoding='utf-8') as f:
print(f.readable())
False
4、’+’表示对文件执行多种操作
w+模式打开的话,文件内容被清空,所以其实read没有读到任何内容
a+的方式打开的话指针(f.tell())跳到文件最后
5、’b’二进制模式
1.rb 以二进制读模式打开
2.wb 以二进制写模式打开
3.ab 以二进制追加模式打开
4.rb+ 以二进制读写模式打开
5.wb+ 以二进制读写模式打开
6.ab+ 以二进制读写模式打开
- read()方法一次读取文件的全部内容,不确定文件大小使用read(size)
- readline()读取文件一行
- readlines()读取文件所有内容,返回列表,并且显示\n,\t
- close()关闭文件,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的。当我们写文件时,操作系统往往不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写入。
如果读取文件有中文,给open()函数传入encodeing参数。则在读取的时候encoding=’utf-8’
withopen模式,用 with open(文件路径,模式,编码格式) as 文件名:这种方法最后不用自己关闭文件,python会帮你自动关闭文件
常见的操作方法:
- f.readable()是判断有读取文件的方法。
- f.read([size]) #size为读取的长度,以byte为单位
- f.readline([size]) #读取一行
- f.readlines([size]) # 返回一个list,其实内部是调用readline()实现的
- f.write(str) # 把str写到文件中,write()不主动加换行符
- f.writelines(str) # 把多行内容一次写入
- f.close() # 关闭文件
- f.flush() # 把缓冲区的内容写入硬盘
- f.tell() # 当前文件操作标记的位置
- f.next() # 返回下一行,并将文件操作标记位移到下一行。把一个file用于for … in file这样的语句时,就是调用next()函数来实现遍历的。
- f.seek(offset[,whence]) #将文件打操作标记移到offset的位置。这个offset一般是相对于文件的开头来计算的,一般为正数。whence参数,whence可以为0表示从头开始计算,1表示以当前位置为原点计算。2表示以文件末尾为原点进行计算。需要注意,如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾。