Python基础知识(八)----文件操作

mac2022-06-30  59

文件操作

一丶文件操作初识

###f=open('文件名','模式',编码): #open() # 调用操作系统打开文件 #mode #对文件的操作方式 #encoding # 文件的编码格式 存储编码要统一 # f #文件句柄,操作文件的对象 f=open('a.txt',mode='r',encoding='utf-8'): f.read() f.close() ###文件操作步骤 #1.开文件 open #2.操作文件: #3.关闭文件 ,关闭之后就不能再操作文件

二丶文件读写操作的模式(r,w,rb,wb)

###r 模式 (文件的读模式) f=open('a','r',encoding='utf-8') content=f.read() # 全读,再次读取就没有内容.不建议使用(因为时一次性把文件全部加载到内存中,造成内存溢出) content=f.read(3) # 按照字符读取 content=f.readline(3) # 默认读一行 ,读取第一行中的字符读取 content=f.readlines(3) # 一行一行读取,存储到列表中,\n换行符 print(content) f.close() # 手动关闭文件句柄 ###循环遍历读取文本 for i in f: # 一行一行读取 , 防止内存溢出 print(i) ###w模式 (清空写入),写入的内容必须是字符串格式. # w 分为两步: #1.先查看有没该文件,没有就创建,有就清空 #2. 在写入 f=open('day08.txt','w',encoding='utf-8') f.write('123') # 必须是字符串 f.flush() # 在写模式下,将写入内容从内存刷到硬盘上 f.close() ###a模式(在文件末尾,追加写入) f=open('day08.txt','a',encoding='utf-8') f.write('123') f.flush() # 在写模式下,将写入内容从内存刷到硬盘上 f.close() ###rb模式(以二进制的模式读取文件,不指定编码) ####常用于处理读取非文本文件,如视频,图片等 f=open('day08.txt','rb') print(f.read()) f.close() #读取结果 "b'\xe5\xa4\xa7\xe5\xa4\x9a\xe6\x92\x92\xe5\xa4\x9a\xe6\x92\x92\xe5\xa4\" ###wb模式(以二进制的模式写文件,不指定编码) ###常用于处理写入非文本文件,如视频,图片等 import requests ret=requests.get('https://www.baidu.com/img/bd_logo1.png') print(ret.content) #将非文本文件写入 f=open('1.png','wb') f.write(ret.content) f.flush() # 在写模式下,将写入内容从内存刷到硬盘上 f.close()

三丶相对路径和绝对路径

###绝对路径 从磁盘的根目录开始 (需要转义\\) E:\File\oldboy学习笔记\Python之路\day08\a ###相对路径 相对于当前文件路径 day08/a ###使用os模块,查看当前工作路径 import os print(os.getcwd()) #E:\File\oldboy学习笔记\Python之路\day08 ***总结:*** \ : 表示绝对路径,从磁盘根目录开始 / : 表示相对路径,相对于某个文件

四丶文件的不经常用的模式(r+,w+,a+)

### r+ 模式 , 读写模式(先读,再写) f=open('day08.txt','r+',encoding='utf-8') content=f.read() #读完,光标在末尾 print(content) f.write('ABC') #写入内容也在末尾 f.close() ### w+ 模式 , 写读模式(先清空写,再读) f=open('day08.txt','w+',encoding='utf-8') f.write('ABC') #光标在末尾 content=f.read() #读时,光标在末尾 .读不到内容 print(content) f.close() ### a+ 模式 , 追加写读模式(先写,再读) f=open('day08.txt','a+',encoding='utf-8') f.write('ABC') #追加写,光标在末尾 content=f.read() #读时,光标在末尾 .读不到内容 print(content) f.close()

五丶文件其他操作

###文件操作常用的方法 f=open('a','r',encoding='utf-8') f.tell() # 查看光标 ,返回的是光标当前位置,按照字节算 f.seek() # 移动光标 (参数以:偏移量,参数二:位置) seek(0,0) #移动文件开始位置 seek(0,1) #光标当前位置 seek(0,2) #移动到文件的末尾位置 seek(3) #按照字节移动 f.truncate() #截断, 按照字节进行截断 , 如果没有参数就按照光标来截断,如果有参数截断到参数位置

六丶with open

##面向对象的上下文管理, ## 自动关闭文件 ## 可以同时打开多个文件 with open('day08.txt','r',encoding='utf-8') as f , \ open('new_day08.txt','w',encoding='utf-8') as f1 : for line in f: print(line)

七丶修改文件(不废话,看下面程序?)

####修改文件内容,并替换 import os import time with open('alex','r',encoding='utf-8') as f1,\ open('new_line','w',encoding='utf-8') as f2: for line in f1: #循环读取原数据 print(line) new_line=line.replace('sb','good') #修改指定内容 f2.write(new_line) #循环写入到新文件中 time.sleep(5) #时间模块, os.remove('alex') #移除旧文件 time.sleep(5) os.rename('new_line','alex') #更改新文件的名字

转载于:https://www.cnblogs.com/dengl/p/11016493.html

最新回复(0)