python基础——文件读写
打开文件
内置函数open/with open 打开文件
'''open''' f = open(r'E:\python\学习.txt', 'r', encoding='gbk') print(f.read()) f.close() '''with open''' with open(r'E:\python\学习.txt', 'r', encoding='gbk') as f: # with之后会自动关闭f,utf-8报错的话可以换gbk试下 data = f.read() # 读全部 # data=f.readline() #读一行 f.seek(0) # read将内容全部读了出来,readline则没有读出任何内容。原因是read读完之后,文件指针到了文件的末尾,此时readline接着从这个位置开始读,肯定是没内容的。因此有时需要调整文件指针的位置 data = f.readlines() # 读全部到list print(data)
1.1 encoding:
gbk:windows中文版的默认编码
utf-8: 现代推荐的统一编码
注:操作二进制文件时,无需设置编码
1.2 mode:
1.3 写入文件
write:写入内容
writelines:写入多行
1.4 读取内容:
read:读取全部内容
readline: 读取一行
readlines:读取所有行,输出为列表
举例
'''open''' f = open(r'E:\python\学习.txt', 'r', encoding='gbk') print(f.read()) f.close() '''with open''' with open(r'E:\python\学习.txt', 'r', encoding='gbk') as f: # with之后会自动关闭f,utf-8报错的话可以换gbk试下 data = f.read() # 读全部 # data=f.readline() #读一行 f.seek(0) # read将内容全部读了出来,readline则没有读出任何内容。原因是read读完之后,文件指针到了文件的末尾,此时readline接着从这个位置开始读,肯定是没内容的。因此有时需要调整文件指针的位置 data = f.readlines() # 读全部到list print(data) '''读写r+,覆盖写''' with open(r'E:\python\学习.txt', 'r+') as f: f.write("开心") f.seek(0) print(f.read()) '''w写,清空写''' with open(r"E:\python\学习1.txt", 'w') as f: # 文件不存在时自动创建,清空原内容写 f.write('柚柚长高高') '''w+写读,清空写''' with open(r"E:\python\学习2.txt", 'w+') as f: # 文件不存在时自动创建,清空原内容写 f.write('柚柚长高高') f.seek(0) # 光标移动到开头,否则读不到东西 print(f.read()) '''a追加写''' with open(r'E:\python\学习.txt', 'a') as f: data = f.write("\n柚柚很可爱") '''a+追加写读''' with open(r'E:\python\学习.txt', 'a+') as f: data = f.write("\n柚柚叫妈妈") f.seek(0) print(f.read()) '''文件修改''' with open(r'E:\python\username.txt', 'a+', encoding='utf-8') as f: new_str = '' f.seek(0) for i in f: str = "li_" + i new_str = new_str + str f.seek(0) f.truncate() # 清空文件 f.write(new_str) f.flush() # 刷新缓冲区 '''备份修改'''
import os with open(r'E:\python\username.txt', 'r', encoding='utf-8') as fr, open(r'E:\python\username1.txt', 'w', encoding='utf-8') as fw: fr.seek(0) for line in fr: new_fr = line.replace('1', '一') fw.write(new_fr) os.remove(r'E:\python\username.txt') os.rename(r'E:\python\username1.txt', r'E:\python\username.txt') with open(r'E:\python\username.txt', 'a+', encoding='utf-8') as f: f.seek(0) for i in f: # 文件可类似序列一样,一行行的遍历 print(i)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现