python 文件操作常用命令

本文详细介绍了Python中文件操作的基本方法,包括获取当前目录、切换目录、移动文件指针等,并阐述了如何使用pickle进行复杂数据结构的持久化存储。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 获取当前目录及切换目录

import os
'''获取当前目录'''
os.getcwd()
'''切换工作目录'''
os.chdir('d:/workspace')

2. 移动文件指针

file = open('file.txt')
'''对文件做了一些操作后需要将'''
'''文件指针移动到起始位置'''
file.seek(0)


3. 持久化存储

将复杂数据结构数据持久化写入文件是建议最好使用pickle,可以保证写入和读取时的数据类型保持不变

import pickle

'''待写入的列表数据'''
mylist = ['hello', 'my', 'world']

'''写入数据,需要使用二进制形式写入(wb)'''
with open('mydata.txt', 'wb') as mysavedata:
<span style="white-space:pre">	</span>pickle.dump(mylist, mysavedata)

'''读取文件中保存的数据,仍然是list类型
with open('mydata.txt', 'rb') as myrestoredata:
<span style="white-space:pre">	</span>another_list = pickle.load(myrestoredata)


<think>嗯,用户想了解Python中操作JSON文件的常用命令和方法。首先,我需要回忆一下Python处理JSON的模块,应该是json模块。常用的方法有load、loads、dump、dumps。记得load是从文件读取,而loads是从字符串转换。同样,dump写入文件,dumps转为字符串。 接下来,用户可能需要具体的例子,比如如何读取和写入JSON文件。记得要提到文件打开的上下文管理器with语句,这样更安全。编码方面,通常会用utf-8,特别是处理中文的时候。比如json.dump的时候要加ensure_ascii=False,这样中文不会显示成Unicode转义字符。 还需要注意参数,比如indent用于美化输出,缩进空格数。异常处理可能也需要提一下,比如JSONDecodeError,当文件格式不正确时会抛出这个错误。用户可能在实际操作中会遇到格式错误的情况,所以这部分内容有帮助。 然后,参考站内的引用资料,检查是否有需要引用的地方。比如引用[2]提到了ensure_ascii=False和indent的作用,引用[4]和[5]展示了读取和写入的代码示例。这些都需要正确标注引用标识。 用户的问题可能还涉及到读取和写入的具体步骤,需要分点说明。比如读操作分为打开文件、使用json.load,写操作则是打开文件并用json.dump。同时,处理字符串和对象转换的方法loads和dumps也要解释清楚。 最后,生成的相关问题要考虑用户可能的后续疑问,比如处理嵌套结构、异常处理、美化输出等。这些问题可以帮助用户进一步深入学习。</think>### Python JSON文件读写常用方法及命令 #### 一、JSON文件读取操作 1. **从文件读取JSON数据** ```python import json with open('data.json', 'r', encoding='utf-8') as f: data = json.load(f) # 返回Python字典或列表 ``` - `json.load()` 用于从已打开的文件对象加载JSON数据[^3][^5] - 必须指定编码(如`utf-8`)以正确处理文本[^1] 2. **从字符串解析JSON** ```python json_str = '{"name": "Alice", "age": 30}' data = json.loads(json_str) # 将JSON字符串转为Python对象 ``` #### 二、JSON文件写入操作 1. **将数据写入JSON文件** ```python data = {"name": "李华", "score": 95} with open('output.json', 'w', encoding='utf-8') as f: json.dump(data, f, ensure_ascii=False, indent=2) ``` - `ensure_ascii=False` 允许中文直接显示[^2][^4] - `indent=2` 添加缩进美化输出[^2] 2. **生成JSON字符串** ```python data = [1, 2, 3] json_str = json.dumps(data, separators=(',', ':')) # 紧凑格式输出 ``` #### 三、关键参数说明 | 方法/参数 | 作用 | |-----------|------| | `json.load()` | 从文件对象加载数据 → Python对象 | | `json.loads()` | 从字符串加载数据 → Python对象 | | `json.dump()` | Python对象 → JSON格式写入文件 | | `json.dumps()` | Python对象 → JSON格式字符串 | | `indent` | 缩进层级(默认None,紧凑格式) | | `sort_keys` | 按键名排序(默认False) | | `skipkeys` | 跳过非基础类型键(默认False) | #### 四、异常处理 ```python try: with open('data.json', 'r') as f: data = json.load(f) except json.JSONDecodeError: print("JSON格式错误") except FileNotFoundError: print("文件不存在") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值