- [ ] 对于文件操作,python提供如下功能
- 文件的基础读写 r w a x(只读,写入,追加写入,创建写入)
备注:x模式操作文件如果文件存在会报错误,如果不存在会直接创建新的文件
## 只读形式读文件
def file_r():
f = open("./mydirtest/1.txt", mode="r", encoding="utf-8")
print(f.read())
f.close()
## 写入文件,要先将1.txt的文件内容清空之后,在进行写入,不可读
def file_w():
f = open("./mydirtest/1.txt", mode="w", encoding="utf-8")
f.write("写入文件信息")
f.close()
## 在原始文件上追加写入内容,不可读
def file_a():
f = open("./mydirtest/1.txt", mode="a", encoding="utf-8")
f.write("写入文件信息")
f.close()
## 创建文件并写入内容,不可读
def file_x():
f = open("./mydirtest/2.txt", mode="x", encoding="utf-8")
f.write("写入文件信息")
f.close()
if __name__ == '__main__':
file_r()
file_w()
file_a()
file_x()
- python 文件的字节读写 rb,wb,ab,xb 模式,基础语法同上,不需要encoding的属性
- python 文件增强型读写 r+ ,w+,a+,x+
##增强型读写文件,同时存在可读属性
## 增强行读写
def file_rpuls():
r = open("./mydirtest/1.txt", mode="r+", encoding="utf-8")
print(r.read())
r.write("\n增加一行新数据\n")
r.close()
## 增强型追加写入
def file_apuls():
r = open("./mydirtest/1.txt", mode="a+", encoding="utf-8")
print(r.read())
r.write("\n增加一行新数据\n")
r.close()
##增强型写入
def file_wpuls():
r = open("./mydirtest/1.txt", mode="w+", encoding="utf-8")
print(r.read())
r.write("\n增加一行新数据\n")
r.close()
- 文件遍歷
def for_file():
with open("./mydirtest/1.txt", mode="r+", encoding="utf-8") as file:
for line in file:
print(line)
## with 直接對文件進行操作關閉,不用在單獨編寫close 函數 ,需要進行as 別名,不然無法操作文件
- 文件指針
def pointer():
with open("./mydirtest/1.txt",mode="r+",encoding="utf-8") as file:
print(file.tell()) ###獲取當前文件位置
file.seek(3) ### 移動位置,設置當前的字節為止已輸出展示
print(file.read(1))
print(file.tell())
- python 文件操作的常用函数
1
file.close()
关闭文件。关闭后文件不能再进行读写操作。
2
file.flush()
刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。
3
file.fileno()
返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。
4
file.isatty()
如果文件连接到一个终端设备返回 True,否则返回 False。
5
file.next()
返回文件下一行。
6
file.read([size])
从文件读取指定的字节数,如果未给定或为负则读取所有。
7
file.readline([size])
读取整行,包括 “\n” 字符。
8
file.readlines([sizeint])
读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行, 实际读取值可能比 sizeint 较大, 因为需要填充缓冲区。
9
file.seek(offset[, whence])
设置文件当前位置
10
file.tell()
返回文件当前位置。
11
file.truncate([size])
从文件的首行首字符开始截断,截断文件为 size 个字符,无 size 表示从当前位置截断;截断之后后面的所有字符被删除,其中 Widnows 系统下的换行代表2个字符大小。
12
file.write(str)
将字符串写入文件,返回的是写入的字符长度。
13
file.writelines(sequence)
向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。