python-文件操作-读,写,追加
'''
open(文件的路径,打开文件的方式,打开的文件编码)
文件的路径:
可以使用绝对路径,也可以使用相对路径 建议使用相对路径
打开文件的方式
访问文件的方式
r ---只读方式打开文件,文件的执政会放在文件开头,如果文件不存在就会报错
w ---打开一个文件只用于写入,如果这个文件已存在,就将文件替换,如果文件不存在,创建文件
a ---打开一个文件用于追加,文件存在的话 文件执政会放在文件的结尾,如果文件不存在创建文件
r+ ---打开一份文件进行读写 文件的执政将会放在文件的开头
w+ ---打开一个文件进行读写 如果这个文件已存在,将文件替换,如不存在,创建新文件
a+ ---打开一个文件进行读写 文件存在的话 文件指针会放在文件的结尾 ,如文件不存在创建新文件
rb ---以二进制形式打开只读方式打开文件,文件的执政会放在文件开头,如果文件不存在就会报错
wb ---以二进制形式打开打开一个文件只用于写入,如果这个文件已存在,就降文件替换,如果文件不存在,创建文件
ab ---以二进制形式打开打开一个文件用于追叫,文件存在的话 文件指针会放在文件的结尾,如果文件不存在创建文件
rb+ ---以二进制形式打开打开一份文件进行读写 文件的指针将会放在文件的开头
wb+ ---以二进制形式打开打开一个文件进行读写 如果这个文件已存在,将文件替换,如不存在,创建新文件
ab+ ---以二进制形式打开打开一个文件进行读写 文件存在的话 文件指针会放在文件的结尾 ,如文件不存在创建新文件
以二进制形式操作文件时,不要设置文件的编码方式
'''
'''
读取的方式
read() ---一次性全部读取
read(size)---如果模式是以字符形式打开文件的 这个size便是的时读取子的的个数
---如果模式时以字节[二进制]形式打开的 这个size表示的时读取字节大小
readline()---读取一行数据
readlines()---读取所有行数据,并吧每一行当着元素放在列表中
读取内容时,不会重复读取--类似迭代器
与文件进行交互完毕关闭通道---不管是否出现异常-通道都需关闭
读取文件
目录结构
1 #建立与文件之间的通道 2 file_path = r'../test_01/os.py' 3 4 #以字符形式打开一个文件 用于只读 5 handle = open(file_path,'r',encoding='utf-8') 6 7 8 9 #打开文件 文件指针的默认位置是开头 10 #移动文件指针 11 handle.seek(2) 12 13 #读取数据2字节数 14 data =handle.read(2) 15 print(data) 16 # 17 data =handle.read(10) 18 print(data) 19 ''' 20 po 21 rt os 22 23 #获取 24 ''' 25 #读取一行数据 26 #已换行行为结束点的位置叫做一行 27 line_data = handle.readline() 28 print(line_data) 29 30 #读取所有行 31 line_data = handle.readlines() 32 print(line_data) 33 34 #以只读形式打开 35 handle = open(r'../test_01/os.py', "r", encoding='utf-8') 36 37 #以二进制方式读取 38 handles = open(r'../test_01/os.py','rb') 39 40 #通过通道读取数据 41 data =handle.read() 42 print(data) 43 44 data1 =handles.read() 45 print(data) 46 print(data1) 47 48 #关闭通道 49 handle.close()
写入文件与追加内容
'''
write(content)---如果模式是以字符形式打开文件的 这个content表示的是字符串数据
---如果模式时以字节[二进制]形式打开的 这个content表示是字节数据
writelines(容器)---如果模式是以字符形式打开文件的 这个容器是字符串数据
---如果模式时以字节[二进制]形式打开的 这个容器中的数据是字节数据
'''
追加内容"w"改为'a'
1 file_path =r'..\test\test.txt' 2 3 #建立与文件之间的通道 4 handle = None 5 try: 6 #文件存在会被清空 7 handle = open(file_path,'w',encoding='utf-8') 8 handle.write('啦啦啦') 9 #写入多行数据需加换行符 10 handle.writelines(['lkekekek\n','hjshshshs\n','啦啦啦啦啦\n']) 11 handle.flush() 12 13 except Exception as e: 14 print(f'出现异常,异常情况是{e}') 15 16 finally: 17 if handle: 18 handle.close() 19 handle = None