当前位置: 首页 > 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.jsqmd.com/news/29985/

相关文章:

  • tp8-商城项目 命令合集
  • 谭剑波day10
  • 2025年11月工装设计公司推荐排行:全国服务网络与项目经验深度解析
  • 2025年11月上海遗产继承律师评测榜:基于真实数据的深度剖析
  • JAVA中三个类的对比:String、StringBuffer和StringBuilder
  • 2025年11月工装装修公司专业排行:深度评测与使用指南
  • Lora Image Cropper
  • 欢迎报名!Kusica 基于K8s的多方安全协同框架11月亮相杭州KCD
  • 2025年11月工装装修公司推荐榜单:权威评测与选择指南
  • 2025 年 11 月沈阳办公家具厂家推荐排行榜,办公桌,办公椅,文件柜,会议桌,办公沙发公司推荐
  • 软件技术工程第二次作业
  • git 命令别名设置
  • 单机模式下nacos的安装与使用
  • ch2题解
  • Pymarchenko程序
  • 2025年11月3日。上课积极回答问题喜得三分
  • Tita 项目经营版:全方位赋能企业项目全流程管理
  • 软件需求分析课堂加分 - 2305
  • 互测赛(4)总结
  • 2025 年 11 月冷水机厂家推荐排行榜,螺杆冷水机,工业冷水机,水冷式冷水机,风冷式冷水机,螺杆式冷水机,小型冷水机公司推荐
  • #20232329易杨文轩 2025-2026-1 《网络与系统攻防技术》 实验四实验报告
  • 2025年11月黄褐斑改善产品评测榜:五款热门单品数据化对比推荐
  • 2025年11月黄褐斑改善产品推荐榜:五款热门单品深度对比与评价
  • 简易小说文件查看器
  • 2025年11月珠海酒店评价榜:商务休闲双需求住宿对比指南
  • 2025年建筑模型行业权威测评:中国建筑模型专业公司排名与深度解析
  • 前端chatbox
  • 2025年11月合肥建筑律师推荐榜:全过程覆盖能力对比评价
  • 空间计量模型,包括空间滞后模型、空间误差模型和空间杜宾模型
  • 2025 年塑料挤出设备厂家最新推荐榜单:深度甄选聚焦技术实力、客户认可及设备性能全方位测评塑料板材挤出设备/塑料挤出设备生产线/塑料管材挤出设备生产线公司推荐