首页 > 编程语言 >Python 输入输出与文件处理: io、pickle、json、csv、os.path 模块详解

Python 输入输出与文件处理: io、pickle、json、csv、os.path 模块详解

时间:2023-12-08 23:01:56浏览次数:41  
标签:文件 模块 示例 Python os json file path data

Python 提供了强大的输入输出和文件处理工具,通过 iopicklejson 等模块,开发者可以轻松处理文件、序列化和反序列化数据,并在不同格式之间进行转换。在本文中,我们将深入介绍这些模块的用法和实际示例。


1. io 模块:强大的输入输出工具

io 模块提供了对文件 I/O 进行灵活处理的能力。它支持文本文件和二进制文件的读写操作,包括读取、写入、追加等。

示例 1:读取文本文件并打印内容

with open('file.txt', 'r') as file:
    content = file.read()
    print(content)

示例 2:写入数据到文件

with open('output.txt', 'w') as file:
    file.write('Hello, I/O!')

2. pickle 模块:对象序列化工具

pickle 可以将 Python 对象序列化为字节流,便于存储和传输,同时也能将字节流反序列化为 Python 对象。

示例 3:将对象序列化并保存到文件

import pickle

data = {'name': 'Alice', 'age': 30}
with open('data.pickle', 'wb') as file:
    pickle.dump(data, file)

示例 4:从文件中反序列化对象

with open('data.pickle', 'rb') as file:
    loaded_data = pickle.load(file)
    print(loaded_data)
    # 输出:{'name': 'Alice', 'age': 30}

3. json 模块:处理 JSON 数据

json 模块提供了处理 JSON 数据的工具,可以实现 JSON 数据的编码和解码。

示例 5:将 Python 数据转换为 JSON 字符串并保存到文件

import json

data = {'name': 'Bob', 'age': 25}
with open('data.json', 'w') as file:
    json.dump(data, file)

示例 6:从 JSON 文件中读取数据并解码为 Python 对象

with open('data.json', 'r') as file:
    loaded_data = json.load(file)
    print(loaded_data)
    # 输出:{'name': 'Bob', 'age': 25}

4. csv 模块:处理 CSV 文件

csv 模块专门用于读写 CSV(逗号分隔值)文件,能够方便地处理表格数据。

示例 7:读取 CSV 文件并处理数据

import csv

with open('data.csv', 'r') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

示例 8:写入数据到 CSV 文件

data = [
    ['Name', 'Age'],
    ['Alice', 30],
    ['Bob', 25]
]

with open('output.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerows(data)

5. os.path 模块:路径操作工具

os.path 模块提供了对路径字符串进行操作的方法,包括路径拼接、文件名提取、检查文件是否存在等。

示例 9:路径操作和文件检查

import os

path = '/path/to/some/file.txt'

# 提取文件名
print(os.path.basename(path))  # 输出:file.txt

# 检查文件是否存在
print(os.path.exists(path))   # 输出:True

# 获取文件的绝对路径
print(os.path.abspath(path))  # 输出:/full/path/to/some/file.txt

以上示例详细介绍了 iopicklejson等模块在文件读写、数据序列化和反序列化方面的用法。如处理 CSV 格式的表格数据、对文件路径进行操作等。通过这些模块,开发者能够轻松处理不同类型的文件和数据,实现数据的持久化存储、交换和恢复。

标签:文件,模块,示例,Python,os,json,file,path,data
From: https://blog.51cto.com/u_16170163/8742095

相关文章

  • MDM介绍:4. macOS和iOS下软件安装一触即发
    不管是在工作中还是生活中,只要使用电子产品,都离不开软件。软件一般分为系统软件和应用软件,无论是哪一种软件都避免不了安装、升级、卸载等操作。在企业、学校中,如果内部有100台设备,每台设备有15个软件,平均每个软件每3个月有一个更新,那么每3个月就有1500次更新,如果有500台就有7500次......
  • Python利用pandas拆分大型的csv文件
    当将大型CSV文件拆分成较小的文件时,您可以使用Python的Pandas库来处理导入必要的库importpandasaspd定义拆分函数当定义拆分函数时,我们将在以下步骤中处理CSV文件的拆分defsplit_csv(input_file,chunk_size):#读取CSV文件dtype_options={'column9':str......
  • Python 使用Paramiko 上传下载远程服务器的文件或文件夹
    Python的Paramiko模块提供了用于SSH连接和文件传输的功能。可以使用Paramiko来上传或下载远程服务器上的文件或文件夹。上传文件要上传文件,可以使用Paramiko的SFTPClient类的put()方法。该方法接受两个参数:本地文件路径和远程文件路径。以下示例将本地文件/tmp/f......
  • python发送邮件
    使用SMTP模块发送邮件importsmtplibfromemail.mime.textimportMIMETextfromemail.headerimportHeadermsg_from='[email protected]'#发送方邮箱passwd='nztjmkbfie'#填入发送方邮箱的授权码(登录qq邮箱账号生成授权码)msg_to=['[email protected]']#收件人邮箱......
  • Cocos RichText的on事件监听
    参考:cocos官方-RichText组件 一RichText点击事件用途1.可以用于当游戏中技能描述里有buff,点击buff会弹出buff的详情框。2.用于点击聊天消息里的高亮装备文字,会弹出装备详情。 二使用方法在richtext的string属性中输入如下,其中click表示回调函数,param表示传入参数。......
  • Python NumPy 数组形状操作
    1、获取数组的形状 1、获取数组的形状要获取数组的形状,可以使用 shape 属性。文档:Pythonnumpy.shape函数方法的使用2、改变数组形状要改变数组的形状,可以使用 reshape() 方法。文档:Pythonnumpy.reshape函数方法的使用3、改变数组的大小要改变数组的大小,可以使用 r......
  • python打包程序注意事项
    Python打包为程序今天用python的时候,写了一个脚本来进行筛选内容,但是一次一次的进行打开和启动python,一点麻烦,所以今天就准备将脚本来进行包装成应用程序来进行运行。目前常见的打包应用程序都是通过Pyinstaller这个脚本实现的,我们现在开始使用。首先先安装Pyinstallerpipi......
  • python 字符串的常用内置函数(后续遇到会继续更新)
    python字符串的内置常用方法(后面会继续更新)​ find方法(查找)#查找子字符串s="helloworld"print(s.find("world"))#输出:6print(s.find("earth"))#输出:-1#指定查找范围s="helloworld"print(s.find("o",6,9))#输出:7,在范围[6,9]内查找&......
  • python实现一个优先级队列
    实现一个优先级队列问题怎样实现一个按优先级排序的队列?并且在这个队列上面每次pop操作总是返回优先级最高的那个元素解决方案下面的类利用heapq模块实现了一个简单的优先级队列:importheapqclassPriorityQueue:def__init__(self):self._queue=[]s......
  • Python从入门到实践practice4
    1input2类型转换3while4定义函数def'''input("这里放给用户的提示")input输入全为字符串str如果需要将str转换为int类型需要进行类型转换int(input(""))int只能转换数字,转换文字会报错类型转换还可以转为float(),str()整数不可以和字符串一起打印,需要类型转换后str(整数),才可以......