open函数,该函数用于文件处理
操作文件时,一般需要经历如下步骤:
1 打开文件 2 操作文件 3 关闭文件
一、打开文件
1 # 文件句柄 = open('文件路径', '模式')
打开文件时,需要指定文件路径和以何种方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作。
打开文件的模式有:
- r ,只读模式【默认,读文件,文件不存在;报错】
- w,只写模式【不可读;不存在则创建;存在则清空内容;】
- x, 只写模式【不可读;不存在则创建,存在则报错】
- a, 追加模式【可读; 不存在则创建;存在则只追加内容;】
"+" 表示可以同时读写某个文件
- r+, 读写【可读,可写 文件不存在;报错】
- w+,写读【可读,可写】
- x+ ,写读【可读,可写】
- a+, 写读【可读,可写】
"b"表示以字节的方式操作
- rb 或 r+b
- wb 或 w+b
- xb 或 w+b
- ab 或 a+b
注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型
常见操作
Python3:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
f.fileno() #获得当前文件描述符 f.flush() #刷新文件内部缓冲区 把内存中的数据,刷入硬盘 f.read() #读取指定字节数据 f.readable() # 是否可读 f.readline() #读取一行 f.seek() #获取文件中指针位置 f.seekable() # 指针是否可操作 f.tell() # 获取指针位置 f.truncate() # 截断数据,仅保留指定之前数据 f.writable() # 是否可写 f.write #写内容
f = open('test','r',encoding="utf-8") #读取文件 指定文件路径,读取模式 编码 print(f.fileno()) #获得文件描述符 print(f.read(5)) #读取5个字符 1个汉字也为一个字符 print(f.readline()) #读取一行 print(f.readable()) #判断文件是否可以读取 f.close()# 关闭文件
f = open("锄禾",'w',encoding="utf-8") #读取文件 指定文件路径,读取模式 编码 f.write("锄禾日当午") # w模式为 清空在写入文件 f.flush() #数据输入硬盘 f.close()
f = open("锄禾",'a',encoding="utf-8") #读取文件 指定文件路径,读取模式 编码 f.write("锄禾日当午") # a模式为 在文件内容后增加写入 f.flush() #数据输入硬盘 f.close()
为了避免打开文件后忘记关闭,可以通过管理上下文,即:
with open('log','r') as f: pass
如此方式,当with代码块执行完毕时,内部会自动关闭并释放文件资源。
在Python 2.7 及以后,with又支持同时对多个文件的上下文进行管理,即
with open('log1') as obj1, open('log2') as obj2: pass
遍历文件
with open("锄禾",'r',encoding="utf-8") as f, open("锄禾",'r',encoding="utf-8") as f1: for i in f.readlines(): print(i.strip()) for j in f1: #建议使用这种方式 print(j.strip())