Python 文件目录操作,以及json.dump() 和 json.load()

news2024/11/27 6:35:58

import os 是用来引入 Python 标准库中的 os 模块的,这个模块提供了与操作系统交互的功能。这个模块常用于文件和目录操作,比如获取文件的目录路径、创建目录等。

如果你在代码中需要使用与操作系统相关的功能(例如获取目录名、检查文件是否存在等),你必须在代码开始部分导入这个模块

import os

# 示例路径
path = "/path/to/some/file.txt"

# 获取文件所在目录
directory = os.path.dirname(path)      返回路径 "/path/to/some/"
print(f"Directory: {directory}")

# 获取文件名
filename = os.path.basename(path)      返回文件名 
print(f"Filename: {filename}")

# 拼接路径
new_path = os.path.join(directory, "new_file.txt")
print(f"New Path: {new_path}")         /path/to/some/new_file.txt

# 检查路径是否存在
if os.path.exists(path):
    print("The path exists.")
else:
    print("The path does not exist.")

# 打开文件以写入数据
with open(configuration_yaml_name, 'w', encoding='utf-8') as fp:
    yaml.dump(data=config_str, stream=fp, allow_unicode=True, sort_keys=False)

 以写入模式 ('w') 打开一个名为 configuration_yaml_name 的文件,编码为 utf-8with 语句确保文件在操作完成后会自动关闭。

  • yaml.dump(data=config_str, stream=fp, allow_unicode=True, sort_keys=False):

    • 使用 yaml.dump()config_str 数据写入文件流 fp
    • allow_unicode=True 允许在 YAML 文件中使用 Unicode 字符。
    • sort_keys=False 使得 YAML 文件中的键保持原始顺序,而不是按字母顺序排序。

yaml.dump() 是 PyYAML 库中的一个函数,用于将 Python 对象序列化为 YAML 格式并写入到文件或字符串中

这里的config.yaml 指的是configuration_yaml_name 文件

将 转化后的YAML格式写入 configuration_yaml_name 文件中


函数 json.dump() 接受两个实参:要存储的数据以及可用于存储数据的文件对象

import json

numbers = [2, 3, 5, 7, 11, 13] 
filename = 'numbers.json'
with open(filename, 'w') as f_obj:
    json.dump(numbers, f_obj)

以写入模式打开numbers.json文件 ,把 列表中的内容写入文件

下面再编写一个程序,使用 json.load() 将这个列表读取到内存中

import json

filename = 'numbers.json'
with open(filename) as f_obj:
    numbers = json.load(f_obj)
print(numbers)

以读取方式打开这个文件,函数 json.load() 加载存储在numbers.json中的信息,并将其存储到变量 numbers 中 .


追加写入

with open(filename, 'a') as file_object:
    file_object.write("I also love finding meaning in large datasets.\n")
    file_object.write("I love creating apps that can run in a browser.\n")

我们打开文件时指定了实参 'a' ,以便将内容附加到文件末尾,而不是覆盖文件原来的内容,write将内容写入       

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2044992.html

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

相关文章

qt-11基本对话框(消息框)

基本对话框--消息框 msgboxdlg.hmsgboxdlg.cppmain.cpp运行图QustionMsgInFormationMsgWarningMsgCriticalMsgAboutMsgAboutAtMsg自定义 msgboxdlg.h #ifndef MSGBOXDLG_H #define MSGBOXDLG_H#include <QDialog> #include <QLabel> #include <QPushButton>…

Cesium模型制作,解决Cesium加载glb/GLTF显示太黑不在中心等问题

Cesium模型制作&#xff0c;解决Cesium加载glb/GLTF显示太黑不在中心等问题 QQ可以联系这里&#xff0c;谢谢

电商搜索新纪元:大模型引领购物体验革新

随着电商行业的蓬勃发展&#xff0c;搜索技术作为连接用户与商品的桥梁&#xff0c;其重要性日益凸显。在技术不断革新的今天&#xff0c;电商搜索技术经历了哪些阶段&#xff1f;面对大模型的飞速发展&#xff0c;企业又将如何把握趋势&#xff0c;应对挑战&#xff1f;为了深…

openinstall支持抖音游戏小手柄监测,助力游戏联运生态高效增长

近来&#xff0c;抖音“小手柄”功能风靡游戏广告生态&#xff0c;通过新颖的联运形式成功将游戏广告触达到抖音整个流量池&#xff0c;由于受众较广&#xff0c;小手柄也是目前直播场数、点赞数最高的形式。 为了帮助广告主快速捕捉流量红利&#xff0c;打通抖音小手柄的数据…

【选型指南】大流量停车场和高端停车场如何选择停车场管理系统?

在当今快节奏的城市生活中&#xff0c;大型停车场和高端车场的运营者面临着一系列挑战&#xff0c;尤其是在车辆流量大和客户期望高的情况下。选择一个合适的停车场管理系统&#xff0c;不仅关系到日常运营的效率&#xff0c;更关系到客户的满意度和车场的整体形象。 捷顺科技认…

螺纹钢生产线中测径仪对基圆和负公差的测量和影响

螺纹钢生产线中测径仪的作用 在螺纹钢生产线中&#xff0c;测径仪是一种关键的检测设备&#xff0c;它负责对螺纹钢的基圆直径、横肋和纵肋等尺寸进行实时测量。测径仪的数据对于监控和控制螺纹钢的生产质量至关重要&#xff0c;尤其是在进行负公差轧制时&#xff0c;它能够提供…

K8S中使用英伟达GPU —— 筑梦之路

前提条件 根据不同的操作系统&#xff0c;安装好显卡驱动&#xff0c;并能正常识别出来显卡&#xff0c;比如如下截图&#xff1a; GPU容器创建流程 containerd --> containerd-shim--> nvidia-container-runtime --> nvidia-container-runtime-hook --> libnvid…

【Spring Boot - 注解】@ResponseBody 注解:处理 JSON 响应

文章目录 一、ResponseBody 注解概述1. 注解的功能2. 主要功能 二、ResponseBody 的工作原理1. 接口定义2. 消息转换器3. 自动配置与默认行为 三、ResponseBody 的应用场景1. RESTful API 的实现2. 返回复杂数据结构3. 错误处理和异常处理 四、ResponseBody 的配置和自定义1. 自…

Rabbit的学习——从安装到集群

一、MQ概念 1.1、异步通讯和同步通讯 1.2、同步调用和异步调用 1.2.1、同步调用 1.2.2、异步调用 1.3、消息队列的作用 1.3.1、流量削峰/限流 1.3.2、 应用解耦 1.3.3、异步处理 1.4、消息队列的两种模式 1.4.1、点对点模式 1.4.2、发布/订阅模式 二、RabbitMQ 2.1…

MyBatis Plus批量写入慢?

1. 数据库连接配置 在使用 MyBatis Plus 进行批量插入之前&#xff0c;首先需要配置数据库连接。在连接 URL 中添加 &rewriteBatchedStatementstrue&#xff0c;以提高批量插入的性能。以下是一个示例&#xff1a; spring.datasource.urljdbc:mysql://localhost:3306/your…

路径规划 | 基于改进蝙蝠算法的多无人机路径规划(Matlab)

目录 效果一览基本介绍程序设计参考文献 效果一览 基本介绍 路径规划 | 基于改进蝙蝠算法的多无人机路径规划&#xff08;Matlab&#xff09; 蝙蝠算法&#xff08;Bat Algorithm&#xff09;是一种基于自然界蝙蝠群体行为的启发式优化算法。该算法模拟了蝙蝠在寻找食物时的行为…

Linux 内核源码分析---内核ICMP协议分析

因特网控制报文协议ICMP&#xff08;Internet Control Message Protocol&#xff09; 是一个差错报告机制&#xff0c;是TCP/IP协议簇中的一个重要子协议&#xff0c;通常被IP层或更高层协议&#xff08;TCP或UDP&#xff09;使用&#xff0c;属于网络层协议&#xff0c;主要用…

论文阅读-Transformer Layers as Painters

1. 摘要 尽管大语言模型现在已经被广泛的应用于各种任务&#xff0c;但是目前对其并没有一个很好的认知。为了弄清楚删除和重组预训练模型不同层的影响&#xff0c;本文设计了一系列的实验。通过实验表明&#xff0c;预训练语言模型中的lower和final layers与中间层分布不一致…

四路一体行车记录仪,语音提示注意行人,保障车辆行驶安全

在叉车、货车、客车等行业中&#xff0c;随着运输业务量的不断增加&#xff0c;行车安全问题已经成为了一大难题。经常会发生车祸、司乘人身安全无保障、货物损失等意外情况&#xff0c;这些事件不仅会给企业带来经济损失&#xff0c;也会影响对应行业的整体形象。 如何提高运…

服装行业的利器:RFID智能吊挂分拣系统

服装行业的利器&#xff1a;RFID智能吊挂分拣系统 服装业继续走粗放型老路的利润空间越来越小&#xff0c;行业内过度竞争利润降低&#xff0c;原料价格上涨导致成本上升。企业内部生产技术创新不足、工厂生产效率低&#xff0c;导致产出不够、货期竞争乏力。企业为了盈利生存…

C++中STL的sring类常用接口及其源码解析

1. 为什么会有string类&#xff1f; C语言中的字符串 C语言中&#xff0c;字符串是以\0结尾的一些字符的集合&#xff0c;为了操作方便&#xff0c;C标准库中提供了一些str系列的库函数&#xff0c; 但是这些库函数与字符串是分离开的&#xff0c;不太符合OOP的思想&#xff0…

VS2022快速搭建OLLVM

基本参考这篇文章&#xff1a; 构建含有ollvm功能的LLVM(clang-cl)供Microsoft Visual Studio 2022使用 - 哔哩哔哩 前提 已安装VS2022 1.VS开启Clang支持 我们要用自己的Clang&#xff0c;所以无需安装VS提供的clang编译器&#xff0c;而且体积太大了&#xff0c;10多个G&…

Jmeter基础与概念详解

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 JMeter 介绍&#xff1a; 一个非常优秀的开源的性能测试工具。 优点&#xff1a;你用着用着就会发现它的重多优点&#xff0c;当然不足点也会呈现出来。 从性能…

c++模板进阶——模板特化和模板分离编译

目录 前言&#xff1a; 1. 非类型模板参数 2. 模板的特化 2.1 概念 2.2 函数模板特化 2.3 类模板特化 2.3.1 全特化 2.3.2 偏特化 2.3.3 类模板特化应用示例 3 模板分离编译 3.1 什么是分离编译 3.2 模板的分离编译 3.3 解决方法 4. 模板的优缺点 前言&#xf…

Zotero 常用插件介绍

1. Zotero 插件安装方法 下载以 .xpi 结尾的插件&#xff1b;打开 Zotero → 工具 → 插件 → 右上小齿轮图标 → Install Add-on From File ... → 选择下载好的 .xpi 插件安装 → 重启 Zotero 2. 常用插件介绍 2.1. Scholaread - 靠岸学术 Zotero 英文文献相关插件&#xf…