Python学习(八)文件操作
1、读取
open中第一个参数放入的是要打开的文件名字,第二个参数是要对这个文件进行的操作,第三参数是用什么编码方式打开文件中的内容
模式:
r,w,a:只读,只写,追加(字符串)
r+,w+,a+:读写(字符串)
rb,wb,ab:(二进制)rb只读字节的模式,读出来的数据是bytes类型,在rb模式下,不能encoding字符集
r+b,w+b,a+b:可读可写二进制
相对路径:同一个文件夹下面的文件,直接写文件名就可以。
cup = open('文件名',mode='r',encoding='utf-8') data = cup.read() print(data) cup.close() #文件操作完毕后,必须要关闭IO资源
绝对路径:从根目录下开始一直到文件名。
fh1=open(r"路径\文件名","r") #r——read读取 fh1——文件句柄 data=fh1.read()#将文件中所有的内容都读取;括号内加数字,从当前光标所在位置向后读取文件x个字符 data1=fh1.readline()#按行读取 data2=fh1.readlines()#按行读取所有 print(data) for x in fh1:#读写大文件 x = x.strip()#去除换行 print(x) fh1.close() #文件操作完毕后,必须要关闭IO资源
2.写入
fh1=open(r"路径\文件名","w") #w——write覆盖写入 fh1——文件句柄
fh1.write("写入的文本")
#如果文件存在,就清空重新写入;如果文件不存在,则新建一个文件并写入;用于新建文件
fh1=open(r"路径\文件名","a") #a——append文件追加写入 data="....." fh1.write(data) fh1.close() #文件操作完毕后,必须要关闭IO资源
r+ 读写(默认从0的光标开始读;从当前光标所在位置写入;通过seek()调节位置)不常用
fh1 = open(r"路径\文件名", mode="r+") data = fh1.read()#光标移至尾部 fh1.write('...')#添加内容 fh1.close() # 文件操作完毕后,必须要关闭IO资源
补充
#一般用于文字写入 f =open('xxx.txt',mode='w',encoding='utf-8') #1、将'文本'根据encoding指定的编码转换成二进制 #2、将二进制写入文件中 f.write()#w打开文件,则write传入字符串 f.close() #一般用于图片、音频、视频、未知编码 f =open('xxx.txt',mode='wb') #1、将要写入的'文本'转换成二进制 data = '...' content =data.encode('utf-8')#按照编码转换成二进制 #2、将二进制写入文件中 f.write(content)#w打开文件,则write传入字符串 f.close()
练习题
#!usr/bin/env python # -*- coding:utf-8 -*- # 1.请将user中的元素根据_链接,并写入‘a1.txt’的文件 user = ['alex', 'eric'] data = '_'.join(user) print(data) file_object = open('a1.txt', mode='w', encoding='utf-8') file_object.write(data) file_object.close() # 2.请将user1中的元素根据'|'链接,并写入‘a2.txt’的文件 user1 = [{'name': 'alex', 'psw': '123'}, # alex|123 {'name': 'glass', 'psw': 'clean'}] # glass|clean file_object = open('a2.txt', mode='w', encoding='utf-8') for item in user1: line = '%s|%s\n' % (item['name'], item['psw'],) file_object.write(line) file_object.close() # 3.请将a2.txt中的文件读取出来并添加到一个列表中['alex|123','glass|clean'] # 方法1 file_object = open('a2.txt', mode='r', encoding='utf-8') count = file_object.read() print([count, ]) data = count.strip() data_list = data.split('\n') print(data_list) file_object.close() # 方法2 result = [] file_object = open('a2.txt', mode='r', encoding='utf-8') for i in file_object: i = i.strip() print(i) result.append(i) print(result) file_object.close()
浙公网安备 33010602011771号