Python 文件操作

news/2025/11/3 12:52:21/文章来源:https://www.cnblogs.com/snow-z/p/19186755

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.mzph.cn/news/954458.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tp8-商城项目 命令合集

# 1. 解除框架版本锁定 composer remove topthink/framework --no-update # 2. 重装指定版本框架composer require topthink/framework:8.0.4 --no-plugins # 3. 安装微信支付SDKcomposer require wechatpay/wechatpay…

谭剑波day10

一 名从在翻译中的应用The notion that people have failed to detect the massive change is important.这是同位语从句翻译成也就是,同位语是可以调换顺序的,其他名从大都顺着翻译宾语从句:在介词,动词,及物动词…

2025年11月工装设计公司推荐排行:全国服务网络与项目经验深度解析

在选择工装设计公司时,企业决策者往往面临着诸多考量。无论是新办公空间的规划,还是商业场所的升级改造,都需要专业的设计团队提供全方位的解决方案。当前工装设计行业呈现出专业化、标准化的发展趋势,随着企业对工…

2025年11月上海遗产继承律师评测榜:基于真实数据的深度剖析

在当今社会,随着财富积累和家庭结构的多元化,遗产继承问题日益凸显其复杂性和重要性。上海作为中国的经济中心,涉及跨境资产、家族企业传承等高端继承案件频发,对律师的专业素养提出了更高要求。许多用户可能正面临…

JAVA中三个类的对比:String、StringBuffer和StringBuilder

在Java中,String、StringBuffer和StringBuilder都是用于处理字符串的类,但它们有不同的特性和适用场景。以下是它们的详细对比: 1. String 类 特性:不可变性:String对象一旦创建就不能被修改,底层使用char、底层…

2025年11月工装装修公司专业排行:深度评测与使用指南

随着企业规模的扩大和商业空间的升级需求,工装装修市场在2025年呈现出稳步增长的趋势。根据中国建筑装饰协会发布的数据,2024年工装市场规模已达到2.1万亿元,预计2025年将保持8%左右的年增长率。在这样的市场背景下…

Lora Image Cropper

Lora Image CropperLora Image Cropper is a simple Qt desktop application for cropping images. It allows you to load an image, crop it to a specific size, and save the cropped image to a file. 把from Py…

欢迎报名!Kusica 基于K8s的多方安全协同框架11月亮相杭州KCD

当三秋桂子遇见分布式计算,当十里荷花碰撞微服务架构,这座被马可波罗誉为"世界最美丽华贵之天城"的数字经济之城,即将迎来一场重量级技术盛宴。本次活动,隐语社区作为可信数据流通领域的先锋力量,将亮相…

2025年11月工装装修公司推荐榜单:权威评测与选择指南

在当今商业环境快速发展的背景下,工装装修已成为企业提升形象、优化功能空间的重要环节。无论是新办公场所的设立,还是现有商业空间的升级改造,选择一家可靠的工装装修公司至关重要。企业决策者、物业管理者或项目负…

2025 年 11 月沈阳办公家具厂家推荐排行榜,办公桌,办公椅,文件柜,会议桌,办公沙发公司推荐

2025年11月沈阳办公家具厂家推荐排行榜:专业采购指南行业背景与发展趋势随着现代办公理念的不断升级,办公家具行业正经历着深刻的变革。2025年的办公家具市场呈现出智能化、人性化、环保化三大发展趋势。智能办公家具…

2025 年 11 月沈阳办公家具厂家推荐排行榜,办公桌,办公椅,文件柜,会议桌,办公沙发公司推荐,品质与设计双重保障!

2025年11月沈阳办公家具厂家推荐排行榜:品质与设计双重保障在现代化办公环境建设中,办公家具作为企业形象与工作效率的重要载体,其选择标准已从单一的功能性需求,逐步发展为集人体工学、空间美学、环保标准与使用体…

软件技术工程第二次作业

龚可为 2023329301124 链接 https://gitee.com/gongkewei/homework

git 命令别名设置

目录背景和价值参考资料 背景和价值 git config --global alias.br branch 参考资料

单机模式下nacos的安装与使用

一、nacos 的安装(安装包方式) ① 下载安装包 https://nacos.io/download/nacos-server/ 并进行解压缩 unzip nacos-server-$version.zip # 或者 tar -xvf nacos-server-$version.tar.gz cd nacos/bin② 修改配置文件…

ch2题解

ch2题解 A-数列有序 考察数组遍历和插入。 题意: 给你一个升序的长度为 \(n\) 的 \(a\) 数组,然后给你一个 \(x\),把 \(x\) 插入到数组 \(a\) 中使它依然有序。 输出插入后的数组。 解题思路: 因为 \(a\) 数组是有…

2025年11月3日。上课积极回答问题喜得三分

2025年11月3日。上课积极回答问题喜得三分上课积极回答问题喜得三分。今日我与软件需求与分析课程上积极回答王建民老师的问题获得了加三分的奖励以此为证。

Tita 项目经营版:全方位赋能企业项目全流程管理

在当今竞争激烈的商业环境中,企业的项目管理能力直接关系到其竞争力与发展潜力。Tita 项目经营版作为一款卓越的项目管理解决方案,为企业提供了从项目立项到结束的全流程精细化管理,助力企业实现高效运营与持续增长…

软件需求分析课堂加分 - 2305

软件需求分析课堂加分课堂积极发言+3

互测赛(4)总结

wxir没有交代码!!!举办了!!!