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

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

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 jsonnumbers = [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 jsonfilename = '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将内容写入       

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 全志Android8, Android 10限制存储500M问题
  • 73、 dockerfile
  • web前端之实现霓虹灯背景魔术卡、旋转的背景动画、模糊效果、边框、变量、filter
  • 深入理解 go unsafe
  • 【教师视角】揭秘SmartEDA电路仿真:教学新利器,点亮学生电子梦想之路!
  • 【QuikGraph】图算法之TSP旅行商问题求解
  • 熟能生巧
  • spring揭秘00-ioc定义与ioc容器及集成工厂模式
  • 韩国服务器的性能如何提升
  • 系统数据库介绍及实践
  • springboot+vue生成word文件下载(最简单教程)
  • web前端之实现一只可爱的小杰尼乌龟、伪元素、动画
  • 什么是回滚
  • Java爬虫中的数据清洗:去除无效信息的技巧
  • 高德地图SDK Android版开发 3 显示定位
  • JS 中的深拷贝与浅拷贝
  • canvas 绘制双线技巧
  • ES6简单总结(搭配简单的讲解和小案例)
  • express + mock 让前后台并行开发
  • Rancher-k8s加速安装文档
  • 安卓应用性能调试和优化经验分享
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 服务器从安装到部署全过程(二)
  • 无服务器化是企业 IT 架构的未来吗?
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​你们这样子,耽误我的工作进度怎么办?
  • # dbt source dbt source freshness命令详解
  • # 利刃出鞘_Tomcat 核心原理解析(八)-- Tomcat 集群
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (2)MFC+openGL单文档框架glFrame
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (libusb) usb口自动刷新
  • (不用互三)AI绘画工具应该如何选择
  • (三)elasticsearch 源码之启动流程分析
  • (一)kafka实战——kafka源码编译启动
  • (转)visual stdio 书签功能介绍
  • (自用)交互协议设计——protobuf序列化
  • ****三次握手和四次挥手
  • ./configure,make,make install的作用
  • .NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则
  • .NET设计模式(2):单件模式(Singleton Pattern)
  • .NET与 java通用的3DES加密解密方法
  • @PostConstruct 注解的方法用于资源的初始化
  • @Slf4j idea标红Cannot resolve symbol ‘log‘
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝
  • [ element-ui:table ] 设置table中某些行数据禁止被选中,通过selectable 定义方法解决
  • []Telit UC864E 拨号上网
  • [16/N]论得趣
  • [android] 看博客学习hashCode()和equals()
  • [android]-如何在向服务器发送request时附加已保存的cookie数据
  • [C++] vector对比list deque的引出
  • [ERR] 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci‘(已解决)
  • [excel与dict] python 读取excel内容并放入字典、将字典内容写入 excel文件
  • [Git场景]常用工作场景演练
  • [HDCTF 2023]Welcome To HDCTF 2023