Python csv、xlsx、json、二进制(MP3) 文件读写基本使用

简介: “流”是一种抽象的概念,也是一种比喻,水流是从—端流向另一端的,而在python中的“水流"就是数据,数据会从一端"流向”另一端,根据流的方向性,我们可以将流分为输入流和输出流,当程序需要从数据源中读入数据的时候就会开启一个输入流,相反,写出数据也会开启一个输出流,需要写入的数据源可以是文件、内存或者网络等。

Python csv、xlsx、json、二进制(MP3) 文件读写基本使用

文章目录

前言

一、什么是文件读写?

二、文件读写方式

三、csv文件读写

1.csv 简介

2.csv 写入

3.csv 读入

四、XLSX文件读写

1.xlsx 简介

2.xlsx 写入

3.xlsx 读入

五、JSON文件读写

1.json 简介

2.json 写入

3.json 读取

六、二进制(MP3)写入

1.二进制 简介

2.二进制(MP3) 写入

3.二进制(MP3) 读入

总结

前言


提示:以下是本篇文章正文内容,下面案例可供参考

一、什么是文件读写?

“流”是一种抽象的概念,也是一种比喻,水流是从—端流向另一端的,而在python中的“水流"就是数据,数据会从一端"流向”另一端,根据流的方向性,我们可以将流分为输入流和输出流,当程序需要从数据源中读入数据的时候就会开启一个输入流,相反,写出数据也会开启一个输出流,需要写入的数据源可以是文件、内存或者网络等。

二、文件读写方式

读取方式 描述
r 只读(默认),文件需存在;
r+ 可读取也可以写入,文件需存在;
rb 表示以二进制方式读取文件,文件需存在;
w 只写,打开一个新文件写入,如果该文件存在则会覆盖;
w+ 可读取也可以写入,打开创建新文件并写入数据,如果文件已存在,则覆盖;
wb 二进制写入,打开一个新文件写入,如果该文件存在则会覆盖;
a 追加写入,文件需存在,在文件内容结尾处继续写入新内容;
a+ 追加写入,文件不存在则会创建一个新文件,在文件内容结尾处继续写入新内容;

三、csv文件读写

1.csv 简介

CSV文件通常使用逗号来分割每个特定数据值(也可用’: ::’,’; ;;'等),具体的文件结构如下:

2.csv 写入

file_path = "number.csv"
content_list = ['1,2,3,4,5\n', '6,7,8,9,10\n', '11,12,13,14,15\n', '16,17,18,19,20\n']
with open(file=file_path, mode='w', encoding='utf-8') as fis:
    for content in content_list:
        fis.write(content)
        print(f"写入成功:{content}", end='')

控制台打印
csv文件内容

3.csv 读入

file_path = "number.csv"
with open(file=file_path, mode='r', encoding='utf-8') as fis:
    content_list = fis.readlines()
for content in content_list:
    print(f"读入成功:{content}", end='')
    print(content.strip())

控制台打印

四、XLSX文件读写

1.xlsx 简介

xlsx是Microsoft Office EXCEL 2007/2010/2013/2016/2019文档的扩展名。其基于Office Open XML标准的压缩文件格式取代了其以前专有的默认文件格式,在传统的文件名扩展名后面添加了字母“x”(即“.docx”取代“.doc”、“.xlsx”取代“.xls”、“.pptx”取代“.ppt”)。任何能够打开“.xlsx”文件的文字处理软件都可以将该文档转换为“.xls”文件,“.xlsx”文件比“.xls”文件所占用空间更小

2.xlsx 写入

import pandas as pd
file_path = 'number.xlsx'
data_list = pd.DataFrame(columns=('A', 'B', 'C', 'D', 'E'))  # pandas Version: 1.1.3
content_list = [['1', '2', '3', '4', '5\n'], ['6', '7', '8', '9', '10\n'], ['11', '12', '13', '14', '15\n']]
for ls in content_list:
    result_list = data_list.append(pd.DataFrame(
        {
            'A': [ls[0]], 'B': [ls[1]], 'C': [ls[2]], 'D': [ls[3]], 'E': [ls[4]]
        }
    ))
    print(f"存入成功:{ls}")
with pd.ExcelWriter(file_path, engine="openpyxl", mode='a+') as writer:  # openpyxl Version: 3.0.10
    data_list.to_excel(writer, sheet_name='sheet1', index=False)
print("数据写入成功!")

控制台打印
在这里插入图片描述

3.xlsx 读入

import pandas as pd
file_path = 'number.xlsx'
df = pd.read_excel(io=file_path, sheet_name=0)
a_list = list(df['A'])  # 按列提取,根据列名,得到list
print('a_list:', a_list)
for index, row in df.iterrows():  # index = 行标号(索引)
    print(row)  # 按行遍历
    print(f"row['A']: {row['A']}")  # 根据列名在当前行提取值
    break

控制台输出
注意报错信息:ImportError: Missing optional dependency 'xlrd'. Install xlrd >= 1.0.0 for Excel support Use pip or conda to install xlrd.
需要安装库:pip install xlrd==1.2.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
pandas常用方法:https://www.lmlphp.com/user/60946/article/item/2367333/

五、JSON文件读写

1.json 简介

JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式。它基于 ECMAScript(European Computer Manufacturers Association, 欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

2.json 写入

import json
from pprint import pprint
file_path = 'number.json'
content_list = [['1', '2', '3', '4', '5'], ['6', '7', '8', '9', '10'], ['11', '12', '13', '14', '15']]
key_list = ['A', 'B', 'C']
data = dict()
for i in range(len(content_list)):
    data[key_list[i]] = content_list[i]
with open(file=file_path, mode='w', encoding='utf-8') as fis:
    fis.write(json.dumps(obj=data, ensure_ascii=False, indent=4))
pprint(data)
print("json数据写入完成")

控制台打印
json文件内容

3.json 读取

import json
from pprint import pprint
file_path = 'number.json'
with open(file=file_path, mode='r', encoding='utf-8') as fis:
    content = fis.read()
json_data = json.loads(content)  # 序列化之后可以根据字典方式存取数据
json_data['D'] = ['16', '17', '18', '19', '20']
pprint(json_data)

控制台输出

六、二进制(MP3)写入

1.二进制 简介

二进制(binary),发现者莱布尼茨,是在数学和数字电路中以2为基数的记数系统,是以2为基数代表系统的二进位制。这一系统中,通常用两个不同的符号0(代表零)和1(代表一)来表示 [1] 。数字电子电路中,逻辑门的实现直接应用了二进制,现代的计算机和依赖计算机的设备里都使用二进制。每个数字称为一个比特(Bit,Binary digit的缩写)

2.二进制(MP3) 写入

import requests
file_path = 'test.mp3'
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'
}
url = 'https://m701.music.126.net/20221023111433/7c8defd5c895b331c9df055e99619652/jdyyaac/obj/w5rDlsOJwrLDjj7CmsOj/7385120648/b9ed/2e3d/169a/941c017bebc80041b787542396dab922.m4a'
response = requests.get(url=url, headers=headers)
with open(file_path, 'wb') as fis:
    for chunk in response.iter_content(chunk_size=1000):
        fis.write(chunk)
        fis.flush()
print("歌曲下载完成!")

下载文件mp3
开始听歌

3.二进制(MP3) 读入

file_path = 'test.mp3'
with open(file_path, 'rb') as fis:
    content = fis.read()

总结

例如:以上就是今天要讲的内容,本文仅仅简单介绍了文件的读写使用,后续有常用的读取操作会在这篇博客中持续更新;

目录
相关文章
|
1月前
|
JSON 算法 vr&ar
目标检测笔记(五):查看通过COCOEvaluator生成的coco_instances_results.json文件的详细检测信息,包含AP、AR、MR和DR等
本文介绍了如何使用COCO评估器通过Detectron2库对目标检测模型进行性能评估,生成coco_instances_results.json文件,并利用pycocotools解析该文件以计算AP、AR、MR和DR等关键指标。
84 1
目标检测笔记(五):查看通过COCOEvaluator生成的coco_instances_results.json文件的详细检测信息,包含AP、AR、MR和DR等
|
27天前
|
安全 Linux 数据安全/隐私保护
python知识点100篇系列(15)-加密python源代码为pyd文件
【10月更文挑战第5天】为了保护Python源码不被查看,可将其编译成二进制文件(Windows下为.pyd,Linux下为.so)。以Python3.8为例,通过Cython工具,先写好Python代码并加入`# cython: language_level=3`指令,安装easycython库后,使用`easycython *.py`命令编译源文件,最终生成.pyd文件供直接导入使用。
python知识点100篇系列(15)-加密python源代码为pyd文件
|
7天前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
9天前
|
开发者 Python
Python中__init__.py文件的作用
`__init__.py`文件在Python包管理中扮演着重要角色,通过标识目录为包、初始化包、控制导入行为、支持递归包结构以及定义包的命名空间,`__init__.py`文件为组织和管理Python代码提供了强大支持。理解并正确使用 `__init__.py`文件,可以帮助开发者更好地组织代码,提高代码的可维护性和可读性。
13 2
|
1月前
|
Linux 区块链 Python
Python实用记录(十三):python脚本打包exe文件并运行
这篇文章介绍了如何使用PyInstaller将Python脚本打包成可执行文件(exe),并提供了详细的步骤和注意事项。
51 1
Python实用记录(十三):python脚本打包exe文件并运行
|
25天前
|
Java Python
> python知识点100篇系列(19)-使用python下载文件的几种方式
【10月更文挑战第7天】本文介绍了使用Python下载文件的五种方法,包括使用requests、wget、线程池、urllib3和asyncio模块。每种方法适用于不同的场景,如单文件下载、多文件并发下载等,提供了丰富的选择。
|
26天前
|
数据安全/隐私保护 流计算 开发者
python知识点100篇系列(18)-解析m3u8文件的下载视频
【10月更文挑战第6天】m3u8是苹果公司推出的一种视频播放标准,采用UTF-8编码,主要用于记录视频的网络地址。HLS(Http Live Streaming)是苹果公司提出的一种基于HTTP的流媒体传输协议,通过m3u8索引文件按序访问ts文件,实现音视频播放。本文介绍了如何通过浏览器找到m3u8文件,解析m3u8文件获取ts文件地址,下载ts文件并解密(如有必要),最后使用ffmpeg合并ts文件为mp4文件。
|
1月前
|
JSON 数据格式 Python
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
这篇文章介绍了一个Python脚本,用于统计TXT或JSON文件中特定单词的出现次数。它包含两个函数,分别处理文本和JSON文件,并通过命令行参数接收文件路径、目标单词和文件格式。文章还提供了代码逻辑的解释和示例用法。
36 0
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
|
30天前
|
JSON 数据格式 计算机视觉
Opencv实用笔记(一): 获取并绘制JSON标注文件目标区域(可单独保存目标小图)
本文介绍了如何使用OpenCV和Python根据JSON标注文件获取并绘制目标区域,同时可将裁剪的图像单独保存。通过示例代码,展示了如何读取图片路径、解析JSON标注、绘制标注框并保存裁剪图像的过程。此外,还提供了相关的博客链接,供读者进一步学习。
26 0
|
3天前
|
设计模式 算法 搜索推荐
Python编程中的设计模式:优雅解决复杂问题的钥匙####
本文将探讨Python编程中几种核心设计模式的应用实例与优势,不涉及具体代码示例,而是聚焦于每种模式背后的设计理念、适用场景及其如何促进代码的可维护性和扩展性。通过理解这些设计模式,开发者可以更加高效地构建软件系统,实现代码复用,提升项目质量。 ####