< Python全景系列-4 > 史上最全文件类型读写库大盘点!什么?还包括音频、视频? 环球快播
欢迎来到我们的系列博客《Python全景系列》!在这个系列中,我们将带领你从Python的基础知识开始,一步步深入到高级话题,帮助你掌握这门强大而灵活的编程语言!
本文系列第四篇,介绍史上最全PYTHON文件类型读写库大盘点!包含常用和不常用的大量文件格式!文本、音频、视频应有尽有!废话不多说!走起来!
先给大家快捷总结:
(相关资料图)
文件格式 | Python库 |
---|---|
文本文件 | 内置open函数 |
CSV文件 | csv |
JSON文件 | json |
XML文件 | xml.etree.ElementTree |
二进制文件 | 内置open函数 |
图片文件 | PIL (Python Imaging Library) |
Word文件 | python-docx |
XLSX文件 | openpyxl |
PDF文件 | PyPDF2 |
SQLite数据库文件 | sqlite3 |
音频文件 | pydub |
视频文件 | moviepy |
HTML文件 | BeautifulSoup |
YAML文件 | pyyaml |
ZIP文件 | zipfile |
正文开始!
1. 文本文件在Python中,处理文本文件是最基础的文件操作,我们使用内置的open函数打开一个文件,然后使用文件对象的read或write方法进行读写操作。
# 写入文本文件with open("example.txt", "w") as f: f.write("Hello, Python!")# 读取文本文件with open("example.txt", "r") as f: print(f.read())
在这里,open函数的第一个参数是文件名,第二个参数是文件模式,其中"r"代表读模式,"w"代表写模式。使用"with"语句可以确保文件在操作完成后被正确关闭。这是一个标准的文件操作模式,也适用于其他类型的文件。
2. CSV文件
CSV(Comma-Separated Values)文件是一种常用的数据交换格式,每行表示一条记录,各字段之间由逗号分隔。Python的csv模块提供了用于读写CSV文件的工具。
import csv# 写入CSV文件with open("example.csv", "w", newline="") as f: writer = csv.writer(f) writer.writerow(["name", "age"]) writer.writerow(["Alice", 20]) writer.writerow(["Bob", 25])# 读取CSV文件with open("example.csv", "r") as f: reader = csv.reader(f) for row in reader: print(row)
这里,csv.writer和csv.reader函数分别返回一个写入器和读取器对象,我们可以使用这些对象进行CSV文件的读写操作。
3. JSON文件
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。Python的json模块提供了用于读写JSON文件的工具。
import json# 写入JSON文件data = { "name": "Alice", "age": 20,}with open("example.json", "w") as f: json.dump(data, f)# 读取JSON文件with open("example.json", "r") as f: data = json.load(f) print(data)
在这里,json.dump和json.load函数分别用于将Python对象转换为JSON格式并写入文件,以及从文件中读取JSON数据并转换为Python对象。
4. XML文件
XML(eXtensible Markup Language)是一种标记语言,可以用来描述数据的结构。Python的xml模块提供了用于读写XML文件的工具。
from xml.etree import ElementTree as ET# 写入XML文件root = ET.Element("root")child = ET.Element("child")child.text = "Hello, Python!"root.append(child)tree = ET.ElementTree(root)tree.write("example.xml")# 读取XML文件tree = ET.parse("example.xml")root = tree.getroot()for child in root: print(child.text)
在这里,我们使用xml.etree.ElementTree模块创建一个XML文件的树形结构,然后使用ElementTree对象的write方法将其写入文件。读取XML一个ElementTree对象,然后通过遍历这个对象来读取XML数据。
5.二进制文件
二进制文件是直接包含二进制数据的文件,例如图像文件、音频文件等。Python使用"b"模式打开二进制文件,然后使用文件对象的read或write方法进行读写操作。
# 写入二进制文件data = b"Hello, Python!"with open("example.bin", "wb") as f: f.write(data)# 读取二进制文件with open("example.bin", "rb") as f: data = f.read() print(data)
在这里,"wb"和"rb"分别代表二进制写模式和二进制读模式。注意我们使用bytes类型的数据进行二进制写操作。
6. 图片文件
处理图片文件一般需要借助第三方库,如PIL(Python Imaging Library)。
from PIL import Image# 读取图片文件img = Image.open("example.jpg")# 修改图片img = img.rotate(45) # 旋转45度# 写入图片文件img.save("example_rotated.jpg")
这里,Image.open和Image.save函数分别用于读取和保存图片文件。PIL库提供了丰富的图像处理功能,例如旋转、裁剪、缩放等。
7. Word文件
处理Word文件,我们可以使用python-docx库,这是一个创建、修改和提取Microsoft Word文件的Python库。
from docx import Document# 创建新的Word文件doc = Document()doc.add_paragraph("Hello, Python!")doc.save("example.docx")# 读取Word文件doc = Document("example.docx")for para in doc.paragraphs: print(para.text)
在这里,我们首先创建一个Document对象,然后使用add_paragraph方法添加段落,最后使用save方法保存文档。读取Word文件时,我们遍历Document对象的paragraphs属性,打印出每个段落的文本。
8. XLSX文件
处理Excel文件,我们可以使用openpyxl库,这是一个读写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库。
from openpyxl import Workbook, load_workbook# 创建新的Excel文件wb = Workbook()ws = wb.activews["A1"] = "Hello,"ws["B1"] = "Python!"wb.save("example.xlsx")# 读取Excel文件wb = load_workbook("example.xlsx")ws = wb.activeprint(ws["A1"].value, ws["B1"].value)
在这里,我们首先创建一个Workbook对象和Worksheet对象,然后使用字典方式访问单元格并赋值,最后使用save方法保存工作簿。读取Excel文件时,我们使用load_workbook函数加载工作簿,然后访问激活的工作表的单元格。
9. PDF文件
PDF是一种常见的文件格式,我们可以使用Python的PyPDF2库来处理PDF文件。
import PyPDF2# 读取PDF文件with open("example.pdf", "rb") as f: reader = PyPDF2.PdfFileReader(f) page = reader.getPage(0) print(page.extractText())# 注意:PyPDF2不能直接创建PDF文件,但可以合并、裁剪和旋转PDF文件
在这里,我们使用PdfFileReader对象读取PDF文件,然后使用getPage方法获取某一页,最后使用extractText方法提取文本。注意PyPDF2不能直接创建PDF文件,但可以合并、裁剪和旋转PDF文件。
10. SQLite数据库文件
SQLite是一种嵌入式数据库,它的数据库全都保存在一个单独的文件中。Python的sqlite3模块提供了对SQLite数据库的支持。
import sqlite3# 创建并写入SQLite数据库conn = sqlite3.connect("example.db")c = conn.cursor()c.execute("CREATE TABLE test (name text, age integer)")c.execute("INSERT INTO test VALUES ("Alice", 20)")conn.commit()conn.close()# 读取SQLite数据库conn = sqlite3.connect("example.db")c = conn.cursor()for row in c.execute("SELECT * FROM test"): print(row)conn.close()
在这里,我们首先创建一个数据库连接和游标对象,然后使用execute方法执行SQL语句,最后使用commit方法提交事务。读取SQLite数据库时,我们遍历execute方法的结果,打印出每一行。
11. 音频文件
处理音频文件,我们可以使用pydub库,这是一个处理音频的Python库。
from pydub import AudioSegment# 读取音频文件audio = AudioSegment.from_file("example.mp3")# 修改音频audio = audio.reverse() # 反转音频# 保存音频文件audio.export("example_reversed.mp3", format="mp3")
在这里,AudioSegment.from_file函数用于读取音频文件。pydub库提供了丰富的音频处理功能,例如反转、裁剪、合并等。最后使用export方法保存音频文件。
12. 视频文件
处理视频文件,我们可以使用moviepy库,这是一个用于视频编辑的Python库。
from moviepy.editor import VideoFileClip# 读取视频文件clip = VideoFileClip("example.mp4")# 修改视频clip = clip.subclip(10, 20) # 截取第10秒到第20秒的片段# 保存视频文件clip.write_videofile("example_subclip.mp4")
在这里,VideoFileClip函数用于读取视频文件。moviepy库提供了丰富的视频处理功能,例如裁剪、拼接、添加音频等。最后使用write_videofile方法保存视频文件。
13. HTML文件
HTML是网页的主要构成元素。我们可以使用Python的beautifulsoup库解析HTML文件。
from bs4 import BeautifulSoup# 读取HTML文件with open("example.html", "r") as f: soup = BeautifulSoup(f, "html.parser")# 解析HTMLprint(soup.title.text) # 打印标题# 注意:BeautifulSoup不能直接创建HTML文件,但可以修改HTML文件
在这里,我们使用BeautifulSoup对象解析HTML文件,然后通过标签名访问HTML元素。
14. YAML文件
YAML(YAML Ain"t Markup Language)是一种直观的数据序列化格式,常用于配置文件。Python的pyyaml库提供了用于读写YAML文件的工具。
import yaml# 写入YAML文件data = {"name": "Alice", "age": 20}with open("example.yaml", "w") as f: yaml.dump(data, f)# 读取YAML文件with open("example.yaml", "r") as f: data = yaml.load(f, Loader=yaml.FullLoader) print(data)
在这里,yaml.dump和yaml.load函数分别用于将Python对象转换为YAML格式并写入文件,以及从文件中读取YAML数据并转换为Python对象。
15. ZIP文件
ZIP是一种常用的压缩文件格式。Python的zipfile模块提供了用于读写ZIP文件的工具。
from zipfile import ZipFile# 创建ZIP文件with ZipFile("example.zip", "w") as zf: zf.write("example.txt")# 读取ZIP文件with ZipFile("example.zip", "r") as zf: print(zf.namelist())
在这里,我们使用ZipFile对象创建一个ZIP文件,然后使用write方法添加文件。读取ZIP文件时,我们使用namelist方法列出所有文件。
One More Thing
在处理文件时,一个常被忽视但又极其有用的技巧是使用Python的pathlib模块来处理文件路径。pathlib模块提供了一种面向对象的方式来处理文件和目录路径,使得路径的处理变得更加直观和简洁。
from pathlib import Path# 创建Path对象p = Path("example.txt")# 检查文件是否存在if p.exists(): print("File exists.")# 获取文件的后缀名print(p.suffix)
在这个例子中,我们使用Path对象表示一个文件路径,然后使用Path对象的方法和属性来进行各种操作,例如检查文件是否存在,获取文件的后缀名等。这是一个非常强大且易用的模块,可以极大地提高我们处理文件路径的效率。
以上就是Python全文件格式输入输出的介绍。希望通过本文,你能够对Python的文件操作有更深入的理解,并能够在实际编程中灵活运用。如果你有任何问题或想法,欢迎在评论区留言分享。
标签:

< Python全景系列-4 > 史上最全文件类型读写库大盘点!什么?还包括音频、视频? 环球快播
2023-05-18

天天滚动:罗翔神预言是什么情况
2023-05-18

曝开拓者或交易三号签 继续围绕利拉德进行建队
2023-05-18

暖心服务 浦发北分灵活处理病重老人存款支付医疗费问题
2023-05-18

反以观往 复以验来
2023-05-18

谨慎更新!Win11被迫撤回修复补丁:修Bug引起更多Bug
2023-05-18

大象帮丨“随手拍”不能停!一个多月来我们解决了这些事儿……|世界新消息
2023-05-18

【世界新视野】realme11Pro /11Pro+全球版6月发布:搭载三星200MP主摄
2023-05-18

天天看热讯:创意海报丨我们看到的这些宝贝,沿着张骞的足迹一路走来……
2023-05-18

滚动:小伙40万收3箱假茅台_网友:这酒还真是不骗穷人呢
2023-05-18
天天滚动:罗翔神预言是什么情况
曝开拓者或交易三号签 继续围绕利拉德进行建队
暖心服务 浦发北分灵活处理病重老人存款支付医疗费问题
反以观往 复以验来
谨慎更新!Win11被迫撤回修复补丁:修Bug引起更多Bug
大象帮丨“随手拍”不能停!一个多月来我们解决了这些事儿……|世界新消息
【世界新视野】realme11Pro /11Pro+全球版6月发布:搭载三星200MP主摄
天天看热讯:创意海报丨我们看到的这些宝贝,沿着张骞的足迹一路走来……
滚动:小伙40万收3箱假茅台_网友:这酒还真是不骗穷人呢
超级五福星电影西瓜视频_超级五福星 环球资讯
广东汕头探索破解村镇“工改工”掣肘
每日信息:日本议员:日本政府强推排污入海计划 未征得民众同意
5月17日基金净值:天弘增强回报债券A最新净值1.3441,涨0.02%
2023年5月东莞沙田社区九价HPV疫苗预约指引
震荡市场下 如何做“逆势”投资?|对话基金经理-每日消息
当前报道:水貂皮草的保养_水貂皮草如何保养
养老理财产品面面观:分红回报陆续到账,产品净值表现平稳 全球今热点
加快推进“中国雪茄之都”建设 什邡开展烟苗认养活动 世界看热讯
前沿资讯!福建省龙岩市2023-05-17 16:49发布雷电黄色预警
考研数学一二三区别_数学一和数学二的区别
河南许昌:开展安全生产风险分级管控和隐患排查治理双重预防体系主题培训_快消息
全球观天下!远大前程十三太保分别是谁 十三太保排名_远大前程十三太保排名
全球最新:关于雪的诗 关于雪的诗句唯美
世界讯息:碳中和板块涨0.93% 建科院涨6.94%居首
防守端出了大问题!湖人需要考虑重新启用这位优质3D侧翼? 环球微头条
重点聚焦!卡萨丁出装s8_卡萨丁出装
江南水务(601199)5月17日主力资金净卖出701.73万元
连接到任意官方服务器失败_连接1921681253
公职人员有下列情形之一的可以从轻或减轻给予政治处分_可以从轻或者减轻处分的情形共有五种_环球快看


- 我国启动5G异网漫游试商用
- 中消协:消费领域仍存四方面突出问题 天天精选
- 世界微资讯!长峰旗下医院因消防问题被罚
- 每日报道:张歆艺袁弘什么时候结婚的?女方瘦成纸片人,排骨胸筷子腿太吓人
- 提子和葡萄有什么不同_提子和葡萄的区别 当前热议
- 每日时讯!汇川技术(300124.SZ):新产品开发和迭代是公司持续推动产品降本以维系较好毛利率水平的重要手段
- 头条:OneDrive可以帮助iOS和Mac用户更好地处理工作和个人云文件 同时保持IT控制|环球关注
- 环球关注:斯科尔斯英超数据:1994-95赛季英超 17场...
- 以色列和巴勒斯坦到底是什么矛盾_以色列与巴勒斯坦的关系
- 今日精选:春季皮肤保养方法_需要怎么做
- OpenAI CEO建议美国考虑对人工智能模型开发的许可和测试要求 | 速途网 快播报
- 我国科学家提出用中国天眼搜寻地球附近暗物质
- 1月份猪企“量增价减” 2021年1月份猪价还能上涨吗-世界微头条
- 足协新开两张罚单,广州队吴俊杰暴力行为停赛5场,与舒尼齐一致
- 全球热推荐:张柏芝公开三胎爱子正面照?与混血宝宝同框出镜,五官精致超帅气
- 试管规格型号 试管规格
- 当前热点-胎盘怎么处理才吉利对小孩好_胎盘怎么处理
- 天天看热讯:龙头逆变器十年户用旗舰SDT G3全球上新
- 共同谱写中国-中亚关系美好明天
- 年发电量可达3亿千瓦时 山西电建承建农光互补光伏项目并网发电|焦点要闻
- 快资讯:全国人大常委会启动湿地保护法执法检查
- dnf阿修罗95加点_dnf阿修罗85级刷图加点是什么-焦点精选
- ps中如何把选区复制到另一个图片中 PS怎么将选区部分复制到新的图层上去呢-全球观察
- 2023年中国锂电设备行业市场规模及重点企业新签订单金额预测分析
- 业绩暴增!这类股集体上涨
- 新手机sss伦理在线_新手机sss 天天看点
- 一个山一个由念什么_一个山一个由-当前播报
- 郑州财政学院地址金融金融是几本|全球热文
- 中超第7轮最佳球员候选:阿奇姆彭、张卫、金敃友、武磊、王秋明 焦点简讯
- 天天热推荐:站上新赛道 书写新精彩
- 性价比无敌!QCY 推出新款蓝牙耳机:到手价 69.9 元 视点
- 日本东电公司门前民众集会反对福岛核污染水排海计划
- 当日快讯:港股午评:指数高位窄幅震荡,电力设备 风电等概念领涨,黄金股领跌 世界快播报
- 天天微资讯!一文梳理孙准浩事件:韩联社称其在中国被刑拘,孙准浩方自称清白,经纪人、韩国足协多方发声
- 银河证券:煤价下跌 采购需求有望修复
- 天天观点:与大桥为伴 与海浪相拥(建设更高水平的平安中国)
- 河南许昌市重卡换电支持政策:“十四五”期间重点布局50座重卡换电站-每日报道
- 天天热消息:一汽-大众 ID.7续航曝光:84.8度电/642km
- 唱歌时怎么用假音_唱歌如何发出假音|环球微速讯
- 天天短讯!花椒叶的吃法大全_花椒叶的吃法
- 从VR试妆到AI应用,Lazada的东南亚爆品方法论
- 赣医联合总会福建省工作委员会在榕揭牌-速读
- 山东2023年化妆品安全科普宣传周5月22日启动
- RTX 4060 Ti或将有多版本 全球观天下
- 阿里达摩院称自动驾驶业务裁员70%为不实消息 世界新动态
- 碳酸锂板块迎来久违大涨 有上市公司高管提前终止减持计划|天天速讯
- 监理旁站内容有哪些监理考试_监理旁站内容有哪些_天天快播
- 爱尔敏什么时候变成巨人_爱尔敏 天天速看
- 当前热讯:杭州亚运会“争当亚运火炬手”活动抽签结果出炉
- 【世界热闻】企稳回升、开局良好,江苏一季度规上工业增加值增长5.5%