文件操作
-
open('文件路径', '操作', '编码'):打开文件
- 基本打开方式:
- r:只不能写
- w:只写,如果文件不存在,则创建文件,如果文件存在,则清空文件内容
- x:只写,如果文件不存在,则创建文件,如果文件存在,则抛异常
- a:追加,如果文件存在,在追加,文件不存在则创建文件
file = open('haha.log', mode='r', encoding='utf-8') data = file.read() file.close() print(data)
file2 = open('haha.log', mode='w', encoding='utf-8') file2.write('Hello World') file2.close()
- python3新加的打开方式
- rb:通过字节的方式读取,忽略编码,直接获取到字节
- wb:通过字节的方式写入
- xb:通过字节的方式写入
- ab:通过字节的方式追加
- 基本打开方式:
-
file的方法
- file = open()获取到文件
- close():断开与文件的连接,回收资源
- flush():主动刷新到硬盘,调用close()也会默认调用flush()方法
- readable():是否可读
- read(1):读取一个字符
- readline():读取一行
- seek():调整指针的位置
- tell():获取指针的位置
- truncate():截取,只保留指针之前的内容
-
遍历file文件
- file文件可以遍历,一行一行的获取到文件里面的内容
file = open('haha.log', mode='r', encoding='utf-8') # data = file.read() for i in file: print(i) file.close()
with open('path', 'mode', 'encoding') as fileName方式打开文件不需要close
-
with open ...as 可以同时打开2个文件(2.7之后添加的特性)
with open('haha.log', mode='r', encoding='utf-8') as file1, open('haha_copy.log', mode='w', encoding='utf-8') as file2: for line in file1: file2.write(line)
-
打开模式二:
- r+:读写
- 通过r+进入后,指针停留在最前面,一旦调用write写入数据后,不管指针在什么位置,直接调到最后
- 如果需要追加内容,需要将指针seek到最后
- w+:写读
- 通过w+进入后,如果文件存在,会先清空文件,如果不存在,则创建文件
- 先写了数据才能有数据可读
- x+:写读
- 通过x+进入,如果文件存在则报错,不存在则创建
- a+:追加读
- 通过a+进入,指针停留在最后,如果需要读取数据,需要将指针往前移
- 读写 != 写读
- r+:读写