Python学习【day05】- Python文件处理
一、打开文件
对文件的操作主要为三步:1、打开文件,得到文件句柄。2、通过句柄对文件进行操作。3、关闭文件
1 # 默认打开模式为r,encoding默认为系统文件编码 2 f=open('F:/Go.txt','r',encoding='utf-8') 3 data=f.read() 4 f.close() 5 6 #自动关闭文件,同时可以操作多个文件 Python换行需要在换行的最后加‘\’ 7 with open('F:/Go.txt','r') as read_f, open('F:/GoGo.txt', 'w') as write_f: 8 data=read_f.read() 9 write_f.write(data)
二、操作文件
1 """ 2 打开一个文件并返回一个流.一旦失败报OSError错误 3 mode是一个可选的字符串,它指定文件的打开模式,默认为‘r’,即文件以只读模式打开文件。其他常见的模式有‘w’、‘a’、‘x’. 4 若文件为文本文件,如果没有指定编码,那么使用的编码是系统编码 通过调用locale.getpreferredencoding(False)来获取当前编码。 5 若文件为字节文件 则不需要指定编码, 6 可选择的模式有: 7 ========= =============================================================== 8 Character Meaning 9 --------- --------------------------------------------------------------- 10 'r' 以只读方式打开 (默认) 11 'w' 以只写的方式打开, 从文件的第一个位置截断【即擦除原文件内容,重新写入】 12 'x' 创建一个文件,并以只写的方式打开它 13 'a' 以只写的方式打开文件, 如果它存在,则追加到当前文件的末尾 14 'b' 二进制模式 15 't' 文本模式 (默认) 16 '+' 以读写方式打开一个磁盘文件 17 'U' 通用换行模式 (弃用) 18 ========= =============================================================== 19 20 buffering是用来设置缓冲策略的可选整数. 21 0转换缓冲(只允许在二进制模式下),1为行缓冲(只能在文本模式中使用),若为一个大于1的整数,则表示一个固定大小的缓冲区块, 22 若没有设置缓冲参数时,在给定的情况下,默认的缓冲策略如下: 后续使用到再介绍 23 """ 24 def open(file,mode='r',buffering=None,encoding=None,errors=None,newline=None,closefd=True): 25 pass
从open定义可知,mode默认即为‘r’,mode的模式可以有:r:只读模式 默认 文件必须存在 若不存在 则报错 w:只写模式 不可读 文件存在则清空文件重新写入 若不存在则创建文件 a:追加写模式 不可读 文件存在则追加 若不存在则创建文件rb:同r模式 只是文件内容为字节 wb:同w模式 只是文件内容为字节 ab:同a模式 只是文件内容为字节
f=open('F:/Go.txt','r',encoding='utf-8') f.read() #读取所有内容 返回值为字符串 f.readline() #读取一行内容 返回值为字符串 f.readlines() #读取每一行内容 返回值为列表 f.write('aaaaa\nbbbb\n') #默认写入文件不换行 f.writelines(['cccc\n','dddd\n']) #文件模式 f.readable() #文件是否可读 f.writable() #文件是否可写 f.closed #文件是否关闭 f.encoding #文件编码,字节文件没有编码 f.flush() #立刻将文件内容从内存刷到硬盘 f.name # 文件名