当前位置: 首页 > news >正文

Python 文件操作

1. 创建文件

# open("文件名",读取模式,编码) , 需要手动关闭文件
fp = open("文件名",mode="a+",encoding="utf-8") # with open("文件名",读取模式,编码) , 自动关闭文件
with open("文件名",mode="a+",encoding="utf-8") as fp:  

2. 打开模式


w   write 写入模式文件不存在则创建文件,存在的话则打开清空内容,并且将文件指针放在文件的开头r   read  读取模式文件不存在则报错! 存在的话则打开文件,并且将文件指针放在文件的开头a   append 追加模式文件不存在则创建文件,存在的话则打开文件,*并且将文件指针放在文件的末尾*x   xor 异或模式文件已存在则报错! 不存在的话则创建文件,将文件指针放在文件的开头U  表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)rUr+Ub  bytes模式,表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)t  读二进制文件,根据encoding的编码转换成字符串。#扩展模式 (配合打开模式的辅助模式,自己单独不能使用)+   plus   增强模式(可以让文件具有读写功

组合使用:

rb  # 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+  # 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+  # 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。wb  # 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
w+  # 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+  # 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。ab  # 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+  # 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+  # 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

3. 相关操作

f = open("test.txt",mode="r+",encoding="utf-8")
res = f.read()      # 读取全部文件(里面的参数代表字符个数)
res = f.read(3)     # 读取全部文件(里面的参数代表读取字符个数)
f.readline()   # 读取一行文件内容
f.readlines()  # 将文件中的内容按照换行读取到列表当中f.write()      # 写入文件
f.writelines() # 将内容是字符串的可迭代性数据写入文件中 参数:内容为字符串类型的可迭代数据res = f.tell()     # 把现在的文件句柄所在的指针打印出来。(返回字节数)
f.flush()    # 强制刷新
f.seek(0)    # 调整指针的位置(调整到第0位)print(f.encoding) # 打印文件编码
print(f.fileno())   # 返回文件句柄在内存中的编号
print(f.name)       # 打印文件名字
print(f.isatty())     # 是不是终端设备
print(f.readable())     # 判断文件是否可读
print(f.writable())     # 判断文件是否可写f.truncate()   # 把要截取的字符串提取出来,然后清空内容将提取的字符串重新写入文件中 (字节)f.close()      # 关闭文件

4. 案例

读取文件,覆盖原文件

def alter(file,old_str,new_str):"""替换文件中的字符串:param file:文件名:param old_str:旧字符串:param new_str:新字符串:return:不建议使用,文件小可以使用"""file_data = ""with open(file, "r", encoding="utf-8") as f:for line in f:if old_str in line:line = line.replace(old_str,new_str)file_data += linewith open(file,"w",encoding="utf-8") as f:f.write(file_data)alter("file1", "09876", "python")

把原文件写到新文件里

# 字符串替换
import os
def alter(file,old_str,new_str):"""将替换的字符串写到一个新的文件中,然后将原文件删除,新文件改为原来文件的名字:param file: 文件路径:param old_str: 需要替换的字符串:param new_str: 替换的字符串:return: None"""with open(file, "r", encoding="utf-8") as f1,open("%s.bak" % file, "w", encoding="utf-8") as f2:for line in f1:if old_str in line:line = line.replace(old_str, new_str)f2.write(line)os.remove(file)os.rename("%s.bak" % file, file)alter("file1", "python", "测试")# 正则替换
import re,os
def alter(file,old_str,new_str):with open(file, "r", encoding="utf-8") as f1,open("%s.bak" % file, "w", encoding="utf-8") as f2:for line in f1:f2.write(re.sub(old_str,new_str,line))os.remove(file)os.rename("%s.bak" % file, file)
alter("file1", "admin", "password")
http://www.zskr.cn/news/38518.html

相关文章:

  • 谭剑波day10
  • tp8-商城项目 命令合集
  • 软件技术工程第二次作业
  • git 命令别名设置
  • ch2题解
  • 互测赛(4)总结
  • 2025年11月黄褐斑改善产品推荐榜:五款热门单品深度对比与评价
  • 2025年11月珠海酒店评价榜:商务休闲双需求住宿对比指南
  • 2025年规模大型纸箱厂家权威推荐榜单:化妆品纸箱/包装纸箱/瓦楞纸箱源头厂家精选
  • 基于开源操作系统搭建K8S高可用集群
  • 2025年11月全屋定制环保材料公司推荐榜单:五家优质企业综合对比分析
  • using关键字笔记
  • 2025年度中国靠谱房地产模型公司排行:房地产模型服务商推荐
  • 2025年11月数控加工中心厂家推荐榜:权威排名与综合评测分析
  • 2025年纳豆菌订制厂家权威推荐榜单:蜂胶苦瓜银杏叶软胶囊/京蜂蜂胶苦瓜银杏叶软胶囊/艾多喜鹿茸人参淫羊藿胶囊源头厂家精选
  • 事倍功半是蠢蛋58 cursor新版本点不开ask界面
  • 2025年11月太空舱民宿推荐十强榜单:热门厂家服务与质量横向对比
  • 2025年路灯工厂权威推荐榜单:太阳能路灯/市电路灯/高杆灯源头厂家精选
  • 《ESP32-S3使用指南—IDF版 V1.6》第四十五章 Flash模拟U盘实验
  • 2025年金黄色聚合氯化铝制造企业权威推荐榜单:喷雾干燥型聚合氯化铝/棕褐色聚合氯化铝/碱式聚合氯化铝源头厂家精选
  • 2025 最新推荐!钻孔机定制厂家权威排行榜发布,全品类非标定制实力品牌 + 技术测评优选指南强力/轮毂多孔钻孔机/钻孔机专机定制公司推荐
  • WTAPI框架微信开发经验
  • 【一句日历】2025年11月
  • .NET 8.0 + Vue 企业级在线培训系统(开源、免费、支持多种主流数据库)
  • 2025年度电厂钢格栅生产厂家TOP5权威推荐:全面解析,精准选型指南
  • 为什么2025的小程序开始“去轻量化”?谈新一代小程序设计趋势
  • 2025年中国高效油雾净化设备公司排名:油雾净化设备供应企业与服务商家权威测评与推荐
  • 2025年度边坡防护网正规企业排名:中国五大老牌边坡防护网厂家深度测评
  • vxe-table 如何自定义排序图标按钮,自定义排序
  • CSPS AK大佬游记拜读