一篇读懂python文件读写

python读写文件的三种做法 4.异同点与最优选择:open()和os.open()函数不会自动关闭文件,而with open()语句会自动关闭文件,不会造成资源泄露的问题。2. os.open(): 用于比较低级的方式去读取文件,是python的os模块提供的函数,以文件路径和模式为参数,返回文件描述符。对于文件操作,python提供了3种做法:open(), os.open() 和with open()语句。1. open()函数:一般用于更高级的文件读写操作,即人能读懂的用法,如果是写入数据,可用传入字符串。 阅读详情

首先获取到需要读取文件的根目录

def get_project_dir():
    """
    获取当前项目的根路径
    :return: 返回根路径的绝对路径
    """
    project_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), "../.."))
    return project_dir

Yaml文件操作

class YamlConfig:
    def __init__(self, yaml_file, folder="config"):
        """
        初始化 YamlConfig 对象
        :param folder: 配置文件所在文件夹名称
        """
        self.logger = logger
        self.file_path = Path(get_project_dir(), folder, yaml_file)
        print(self.file_path)

    def write_yaml(self, data: dict):
        """写入数据到yaml,但是会覆盖全部内容
        """
        try:
            with open(self.file_path, 'w', encoding="utf-8") as f:
                yaml.safe_dump(data, f, allow_unicode=True)
                self.logger.debug(f"yaml文件【{self.file_path}】写入数据成功!内容如下:\n{format_print(data)}")
                return data
        except FileNotFoundError:
            self.logger.exception(f"写入{self.file_path}文件错误!")

    def update_yaml(self, key: str, value: str):
        """仅更新yaml文件
        """
        result = self.load_yaml()
        # 更新部分内容
        result = result.copy()
        result[key] = value
        try:
            # 写入更新后的 YAML 文件
            with open(self.file_path, 'w', encoding="utf-8") as f:
                yaml.safe_dump(result, f)
        except FileNotFoundError:
            self.logger.exception(f"写入{self.file_path}文件错误!")

    def load_yaml(self):
        """
        读取 YAML 配置文件
        :return: 配置数据字典
        """
        try:
            with open(self.file_path, 'r', encoding="utf-8") as f:
                data = yaml.safe_load(f.read())
                self.logger.debug(f"yaml文件【{self.file_path}】加载成功!内容如下:{format_print(data)}")
                return data
        except FileNotFoundError:
            print(f"文件 {self.file_path} 不存在。")
            return None
        except Exception as e:
            print(f"读取配置文件时发生错误:{e}")
            return None

Json文件操作

class JsonConfig:
    def __init__(self, json_file: str, folder: str = "config"):
        """初始化JsonConfig对象

        Args:
            json_file: json配置文件
            folder: json配置文件的路径
        """
        self.logger = logger
        self.file_path = Path(get_project_dir(), folder, json_file)
        print(self.file_path)

    def read_json_file(self):
        try:
            with open(self.file_path, 'r', encoding='utf-8') as f:
                return json.load(f)
        except FileNotFoundError:
            self.logger.exception(f"文件 {self.file_path} 不存在!")
        except json.JSONDecodeError:
            self.logger.exception(f"文件 {self.file_path} 内容不是有效的 JSON!")

    def write_json_file(self, data: dict):
        try:
            with open(self.file_path, 'w', encoding='utf-8') as f:
                json.dump(data, f, indent=4, ensure_ascii=False)
        except FileNotFoundError:
            self.logger.exception(f"文件 {self.file_path} 不存在!")

    def update_json_file(self, value: str, parent_key: str, child_key: str = None):
        try:
            with open(self.file_path, 'r', encoding='utf-8') as f:
                json_data = json.load(f)
            if child_key is None:
                # 无嵌套
                json_data[parent_key] = value
            else:
                # 2级嵌套
                json_data[parent_key][child_key] = value
            # 将更新后的新数据写入json文件
            self.write_json_file(json_data)
        except FileNotFoundError:
            self.logger.exception(f"文件 {self.file_path} 不存在!")

InI文件操作

class IniConfig:
    def __init__(self, ini_file: str, folder="config"):
        """ini配置文件

        Args:
            ini_file: ini配置文件
            folder: 配置文件路径
        """
        self.logger = logger
        self.config = ConfigParser()
        self.file_path = Path(get_project_dir(), folder, ini_file)
        print(self.file_path)

    def load_file(self) -> None:
        """加载文件

        Returns:
            None
        """
        try:
            self.config.read(self.file_path, encoding="utf-8")
            self.logger.debug(f"读取配置文件:【{self.file_path}】成功~")
        except (FileNotFoundError, NoSectionError):
            self.logger.exception(f"读取配置文件:【{self.file_path}】异常!")

    def get_value(self, parent_key: str, child_key: str) -> str:
        """获取对应的值

        Args:
            parent_key: 父键
            child_key: 子键

        Returns:
            data: 配置文件值

        """
        self.load_file()
        data = self.config.get(parent_key, child_key)
        self.logger.debug(f"ini文件【{self.file_path}】加载成功!内容:{data}")
        return data

CSV文件操作

class CsvConfig:
    def __init__(self, csv_file: str, folder: str = "config"):
        """CsvConfig

        Args:
            csv_file: csv配置文件
            folder: csv配置文件的路径
        """
        self.logger = logger
        self.file_path = Path(get_project_dir(), folder, csv_file)
        print(self.file_path)

    def read_csv_file(self):
        try:
            with open(self.file_path, 'r', encoding='utf-8') as f:
                reader = csv.reader(f)
                rows = []
                for row in reader:
                    rows.append(row)
                return rows
        except FileNotFoundError:
            self.logger.exception(f"文件 {self.file_path} 不存在!")
        except csv.Error:
            self.logger.exception(f"文件 {self.file_path} 内容不是有效的CSV!")

    def write_csv_file(self, write_data: list):
        try:
            with open(self.file_path, 'a', newline='', encoding='utf-8') as f:
                writer = csv.writer(f)
                writer.writerows(write_data)
        except csv.Error:
            self.logger.exception(f"{write_data}数据写入csv文件失败!!")

最后运行结果

文件操作(Python和C++版) 程序运行时产生的数据都属于临时数据,程序—旦运行结束都会被释放通过C++中对文件操作需要包含头文件< fstream >文件类型分为两种:1.- 文件以文本的ASCII码形式存储在计算机中2.- 文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们操作文件的三大类:1. ofstream : 写操作2. ifstream : 读操作3. fstream : 读写操作。 阅读详情

相关推荐

数字后端流程--place

Floorplan完成后芯片的大致框架已经出现,万里长征已经迈出特别重要的第一步了,前面的步骤我们已经完成了io port,macro的摆放,现在core外只剩下std cell(标准单元)了,Place这一步就是要把std cell放进core里。看到密密麻麻的std cell也不用紧张,因为放std cell不用像macro手动一个一个摆,工具就可以帮我们完成大部分工作。虽然这一步的工作只有一个,但也不是只要Place完就能进行下一步的,衡量Place质量是否满足标准会通过以下几点判断。

qq_68400574的博客 771

一篇文章带你搞懂Python的文件读写

filename:一个包含了你要访问的文件名称的字符串值,通常是一个文件路径。mode:打开文件的模式,有很多种,默认是只读方式r。例:f = open(“1.txt”, “w”)f.write(“Python 是一种非常好的语言。\nPython!!\n”)f.close()运行结果:在1.txt文件中写入Python 是一种非常好的语言。Python。三、访问模式======通过一个表格,了解Python常用的读写模式访问模式说明r以只读方式打开文件。文件的指针将会放在文件的开头。(默认模式)。w打开一

2401_84010744的博客 481

AI驱动的iOS逆向工程自动化:14阶段工作流与Ghidra集成实践

逆向工程是软件安全分析的核心技术,通过反汇编、调试等手段解析程序内部逻辑与数据流。其原理在于将编译后的二进制代码还原为可理解的逻辑结构,从而发现潜在漏洞或理解软件行为。在移动安全领域,iOS逆向工程具有重要技术价值,能够用于安全审计、漏洞挖掘与恶意软件分析。传统iOS逆向依赖ipsw、class-dump、Frida等工具链组合,存在学习曲线陡峭与流程碎片化问题。本文介绍的ios-reverse-skills项目创新性地将14阶段逆向工程方法论封装为AI可调用的标准化脚本集,通过Ghidra脚本实现Swif

weixin_27268733的博客 430

最好懂的python文件读写(详解)

目录   1、文件读写的流程   2、文件读写的几种常见模式   3、read、readline、readlines的区别   4、对于一个10G的大文件,怎么高效的查看文件中的内容呢? 1、文件读写的流程 1)类比windows中手动操作txt文档,说明python中如何操作txt文件? ① windows中手动操作txt文件的步骤 找到word文档 打开word文档 查看(或操作)word文...

数据分析与统计学之美 2万+

从零手写神经网络:用NumPy实现全连接网络与反向传播

神经网络本质上是可微分的函数复合体,其核心在于仿射变换与非线性激活的交替堆叠,以及基于链式法则的自动微分实现。理解前向传播的矩阵运算逻辑和反向传播的梯度流动机制,是掌握深度学习底层原理的关键路径。权重初始化(如He/Xavier)、激活函数选择(ReLU/Sigmoid)与数值稳定性处理(如1e-8防下溢)共同决定了训练的收敛性与鲁棒性。这些基础要素不仅支撑学术推导,更直接影响工业场景中的模型调试、FPGA部署及梯度异常定位。本文以纯NumPy实现三层全连接网络为载体,聚焦‘From Scratch’过程中

weixin_32495691的博客 285

基于OpenClaw的AI数字员工协同团队架构设计

随着大型语言模型从被动的文本生成器向具备自主规划与执行能力的智能代理演进,企业级人工智能的应用范式正在发生根本性转变。在这一演进过程中,OpenClaw(前身为Clawdbot及Moltbot)作为一种开源的、本地优先的个人AI智能体网关基础设施,凭借其对持续内存、多通道接入以及沙盒化工具执行的原生支持,迅速成为构建“始终在线”数字劳动力的核心框架 1。然而,将单体个人助理扩展为能够处理复杂业务逻辑、支持跨组织协同并严格保障数据隔离的多智能体(Multi-Agent)团队,绝非简单的API拼接。系统架构必须

形上得其象,形下合于数;阴阳自济,玄理自明。 1047

深入解析Python3文件操作:从基础语法到实际应用,全面掌握文件读写技巧

本文详细介绍了 Python3 中的文件操作方法,包括基本语法、常用命令、示例代码、实际应用场景和注意事项。掌握这些文件操作技巧,能够帮助您更好地处理文件读写、配置管理和日志记录等任务,提升编程效率和程序的稳定性。

欢迎来到技术蜜糖罐的IT角落! 1172

TC8工作原理

OPEN组织由全世界主要整车厂和供应商组成,旨在推广以太网技术在车辆中的应用。OPEN下属多个技术委员会(Tech Committee,简称TC),对不同方面的技术细节进行量化定义,并发布相应规范。其中TC8规范包括车载以太网ECU从物理层到应用层的各层互操作性以及常规基础功能服务,目的在于提高不同ECU之间的兼容性 UpperTester UpperTester作为Tester与DUT的被测核心功能模块之间的中介,辅助完成测试。UpperTester的主要功能包括: 与Tester就测试模式切换/请.

jasonj333 5324

Python操作文件的读取和写入,详解和案例介绍

Python文件IO操作是Python编程中非常重要的一部分,可以通过文件IO操作来读取和写入文件。文件IO操作提供了一种在程序中处理文件的方法,可以读取文件中的数据,也可以将数据写入到文件中。在本文中,我们介绍了Python中文件IO操作的基本知识和常用方法,包括文件的打开和关闭、文件的读取、文件的写入、文件的追加、文件的异常处理和文件的上下文管理器。通过合理地使用文件IO操作,可以更加高效地处理文件,提高程序的可读性和可维护性。

aobulaien001的博客 1059

开心消消乐

1)当点击一个1时,该1变被反转为0,同时相邻的上、下、左、右,以及左上、左下、右上、右下8个方向的1(如果存在1)均会自动反转为0;2)进一步地,一个位置上的1被反转为0时,与其相邻的8个方向的1(如果存在1)均会自动反转为0;上述样例中,四个角上的1均在中间的1的相邻8个方向上,因此只需要点击一次即可。给定一个N行M列的二维矩阵,矩阵中每个位置的数字取值为0或1。在上述4 * 4的矩阵中,只需要点击2次,即可将所有的1进行消除。接下来N行表示矩阵的初始值,每行均为M个数,取值范围[0,1]

面试高手的博客 2728

Open3D (C++) 点云边界提取【2025最新版】

Compute the boundary points of a point cloud.The implementation is inspired by the PCL implementation. Reference:https://pointclouds.org/documentation/classpcl_1_1_boundary_estimation.html

点云侠的博客 871

Python中读文件、写文件的操作方法

即使文件会在程序退出后自动关闭,但是考虑到数据的安全性,在每次使用完文件后,都要使用close方法关闭文件,否则一旦程序崩溃,很可能导致文件中的数据没有保存。文件的读写,无非就是将数据写入文件或者从文件中读取数据,接下来,本节将分别针对文件的读与写进行讲解。在操作某个文件的时候,每调用一次write方法,写入的数据就会追加到文件末尾。同样,以读取itheima.txt文件为例,使用readline方法读取文件的方式如例所示。当向文件写入数据时,如果文件不存在,那么系统会自动创建一个文件并写入数据。

黑马程序员官方博客 1万+

2026年最值得学习的十大 SAP 开发技术

在这辞旧迎新之际,我想和大家聊聊我心中的2026年我仍然愿意持续投入时间去学习的一些 SAP 开发技术。因为笔者水平和视野局限,加上这份清单有笔者主观兴趣爱好在内,可能大家对清单上罗列的技术有不同意见,欢迎大家在评论区发表自己的见解。下面是笔者列出的十个技术方向,排名不分先后。因为精力有限,2026年我很可能只会选择其中一两个自己最感兴趣的方向去深耕。每项技术后面都提供了链接,方便大家看完就开始学习。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1519

一文读懂Python文件操作

在Python中,文件操作是一个重要的概念。我们通常需要读取文件中的数据进行处理,或者将处理后的数据保存到文件中。在本文中,我们将介绍Python如何打开文件,以及如何读写文件内容。

weixin_68789096的博客 1076

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

章节十六:编码和文件读写

把最后一个比特位也编进来吧。编码知识虽然看起来很琐碎,但它又是非常重要的,如果不能理解这些背景知识,指不定你哪天就会遇到坑,就像隐藏在丛林中的蛇,时不时地咬你一口。是我们没有学过的对字符串的处理方法,在这里,老师想插一句,对数据类型的处理是有很多种方法的,但我们不可能一次学完,而应该学习最基础必要的知识,然后在需要用到新知识时,再继续学。解码的时候则要注意,UTF-8编码的字节就一定要用UTF-8的规则解码,其他编码同理,否则就会出现乱码或者报错的情况,现在请你将下列字节解码成UTF-8的形式,打印出来。

不能将运气当成战略! 907

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

一文读懂Python对文件操作【Python技巧100例】

在Python中,lambda函数也被称为匿名函数,这是因为它们没有正式的函数名。lambda函数是一种简洁的创建小型函数的方式。lambda这里,arguments是函数的输入,而expression是函数的输出。lambda函数可以接受任意数量的参数,但只能有一个表达式。例如,我们可以创建一个lambda在这个例子中,lambda函数接受两个参数x和y,并返回它们的和。然后我们将这个lambda函数赋值给add,这样我们就可以像使用其他函数一样使用这个lambda函数了。尽管lambda。

子午的博客 387

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

python纯文本文件读写方法(读写 .txt 和 .py 文件的函数)#扎克伯格演讲

纯文本文件”只包含基本文本字符,不包含字体、大小和颜色信息.带有.txt扩展名的文本文件,以及带有.py扩展名的Python脚本文件,都是纯文本文件的例子。

Daniel16464的博客 2387

python3 读写Excel

python3 读写Excel说明 2007版以前的Excel(xls结尾的),需要使用xlrd读,xlwt写。 2007版以后的Excel(xlsx结尾的),需要使用openpyxl来读写。 pypi的地址: https://pypi.python.org/pypi/xlwt https://pypi.python.org/pypi/xlrd https://pypi.python.org/pyp

jeikerxiao 4万+

Python的读写文件

最近学习Python,看了一些文档,文档是英文的,所以就翻译了过来,,更多的是按照自己的理解写的。 操作文件主要 有下面几个方法: 1.file object = open(file_name [, access_mode][, buffering]) 首先要新建一个文件的对象,并把文件对应的路径、打开的模式、编码定义好。记住在打开文件期间,其他用户不能再操作这个文件。 file_

嘿,牛慧升的博客 835

python读写excel文件

# -*- coding: utf-8 -*- """ Created on Thu Jun 13 22:12:26 2019 QQ群:476842922(欢迎加群讨论学习) @author: Administrator """ # -*- coding: utf-8 -*- # 读写2003 excel import xlrd import xlwt # 读写2007 excel import ...

weixin_33595571的博客 424

python3 读写Excel -- python3 excel 读写

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/jeikerxiao/article/details/73614335 python3 读写Excel 说明 2007版以前的Excel(xls结尾的),需要使用xlrd读,xlwt写。 2007版以后的Excel(xlsx结尾的),需要使用openpyxl来读写。 pypi的地址: h...

kuangben2000的博客 639

python open文件 第一行特殊字符_Python必知必会-字符编码和文件处理

一、字符编码1.编码基础定义:人在使用计算机时,使用的是人类能够读懂的字符,使用者必须通过一张字符和数字间的相对应关系表实现人机交互,这一系列标准称为字符编码Python应用中解决核心字符串乱码的最佳方法:用什么格式编码,就用什么格式解码二、文件处理1.文件基础1)定义计算机系统分为:计算机硬件,操作系统,应用程序三部分。python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬...

weixin_39653766的博客 584
上一篇: 基于Windows下JMeter+influxdb+Grafana实现性能测试监控
python_jackey_wang
博客等级 码龄5年 225粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值