python数据处理主要内容,【python】Python常见的数据处理应用

本文详细介绍了Python中进行文件操作的基本方法,包括检查文件存在、获取文件信息、重命名、写入和读取文件、复制、删除等。此外,还讲解了JSON、CSV和ZIP文件的读写操作,提供了实用的代码示例,帮助开发者在实际项目中更好地处理数据交换和文件管理。

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

f0642783be0dd2601f8b9513571dbc4d.png

在实务上,常常有机会需要将资料写入或读出数据,而Python也提供了许多相关的模组(Module)让开发人员可以容易的进行档案的操作。透过本篇的教学,各位除了能够利用Python进行基本的档案操作外,也有能力读取及写入常见的资料交换格式档案,重点包含:

基本的档案操作JSON档案操作(JSON Files)CSV档案操作(CSV Files)ZIP档案操作(Zip Files)

一、基本的档案操作

首先,先来看一下我们目前专案的档案结构,如下:

9a0bb7f45b4b2476b06f5bc36bf8ccea.png

现在就来分别介绍几个Python常用的档案操作方式:

检查档案是否存在利用Path模组(Module)中的exists()方法,来检查目录下是否含有特定的档案,如下范例:

a1c6c8b05e40e372ea1795dd08449d71.png

取得档案信息

利用Path模组(Module)中的stat()方法即可取得目录下特定档案的信息,如下范例:

087ec8e3bc7a56d744a5a8552f27991e.png

执行结果

37b4ff70c1ef7ba3274a5aeb2e2ce5e5.png

从执行结果可以看到包含了档案的大小st_size、修改时间st_mtime及建立时间st_ctime等。

重新命名档案利用Path模组(Module)中的rename()方法,并且传入新的档案名称及路径即可实现档案重新命名的动作,如下范例:

815148a413824359e99e42f09781b02f.png

写入档案资料利用Path模组(Module)中的write_text()方法,并且传入要写入的资料。

745094c01c3208a43a7cde483802a8e6.png

读取档案资料利用Path模组(Module)中的read_text()方法,即可读取指定目录中的档案内容。

4bff6b9b3720b589ce497eb0254c7171.png

复制档案在一般的情况下,我们会利用Path模组(Module)中的read_text()方法读取原档案内容,接着,再透过write_text()方法将资料写到新档案中,来达到复制档案的目的,如下范例:

55e2daf7e19eb6d81d1709e89ede5dc2.png

不过,有一个更简洁的方式可以达到相同的效果,就是利用shutil模组(Module)中的copy()方法,传入原档案及新档案物件,如下范例:

ea7007981999e143423d3e0eec5b0c95.png

开启及关闭档案利用open()方法来开启档案,接着传入路径及模式,而模式分别有r (读)、w (覆写)及a (续写)三种,此方法会回传File Object。另外,关闭档案则呼叫close()方法,如下范例:

6e515a9c865786b0051561720f8ef6b8.png

各位可能会觉得奇怪,为什么这边读取档案内容是呼叫readline()方法而不是read_text()方法?其实,这两个方法皆可进行读取档案内容的动作,只是上面范例是利用Path物件的read_text()方法,而这边是File物件的readline()方法。

另外,使用此写法有一个缺点是,当开启档案后,在进行任何动作的过程中,如果有发生例外错误时,即有机会没有执行到关闭档案的动作,这会使得资源耗尽或导致下次执行时发生错误,所以比较好的写法是使用with陈述式( The With Statement) ,如下范例:

7afa561d4a4f989729476b44b8b01cf0.png

透过with陈述式(The With Statement),当区块中的档案操作结束时,Python会动呼叫close()方法来释放外部资源。

删除档案利用Path模组(Module)中的unlink()方法,即可删除目录中的档案。

6f9f09b853074d02a4c1ab22a3aeffd7.png

二、JSON档案操作(JSON Files)

JSON(JavaScript Object Notation)是一个以JavaScript语法为基础的轻量资料交换格式,由于容易产生与解析,所以现今许多网站都使用JSON来进行资料的交换。那Python要如何将应用程式中所产生的JSON格式资料写入JSON档案中呢?我们可以利用json模组(Module)中的dumps()方法将资料格式化为JSON ,接着再透过Path物件的write_text ()方法写入档案中,如下范例:

d37322abaf923a20563f52ddbf5a6f40.png

而要读取JSON档案中的资料,则是先利用Path物件的read_text()方法读出来,接着再透过json模组(Module)中的loads()方法将字串资料转为阵列,最后利用回圈存取各栏位的资料,如下范例:

data = Path("books.json").read_text()books = json.loads(data) # 解析為陣列for book in books:print(book["name"]) # 印出所有的書名

三、CSV档案操作(CSV Files)

CSV(Comma-Separated Values),也是一种资料交换的格式,与JSON不一样的地方是,每笔资料是以字元符号分隔。要透过Python将资料写入CSV档案中,需引用csv模组(Module) ,建立CSV writer物件,接着透过writerow()方法写入资料,如下范例:

import csvwith open("books.csv", "w") as file:writer = csv.writer(file)writer.writerow(["id", "name", "price"])writer.writerow([1, "Python for beginner", 350])writer.writerow([2, "Django for beginner", 400])writer.writerow([3, "Pandas for beginner", 620])

另外,要读取CSV档案中的内容,则是要建立CSV reader物件,再透过回圈的方式来存取资料,如下范例:

with open("books.csv") as file:reader = csv.reader(file)for item in reader:print(item) #印出所有資料

四、ZIP档案操作(Zip Files)

还有一个常见的档案处理就是压缩,我们可以利用zipfile模组(Module)来建立ZipFile物件,接着利用回圈,将blog资料夹下的所有档案,透过write()方法加到压缩档中,如下范例:

from zipfile import ZipFilefrom pathlib import Pathwith ZipFile("blog.zip", "w") as zip:for file in Path("blog").rglob("*.*"): # 找到blog資料夾下的所有檔案zip.write(file) #加到壓縮檔

而解压缩则是利用原压缩档来建立ZipFile物件,接着透过extractall()方法,传入目的地资料夹名称来达成,如下范例:

with ZipFile("blog.zip") as zip:zip.extractall("blog_zip") # 解壓縮至blog_zip資料夾当然,ZipFile物件也提供了取得压缩档内容的方法,如下范例:from zipfile import ZipFilefrom pathlib import Pathwith ZipFile("blog.zip") as zip:info = zip.getinfo("blog/readme.txt")print(info.file_size) # readme.txt檔案大小print(info.compress_size) # readme.txt壓縮後的檔案大小print(zip.namelist()) # 列出壓縮檔中的內容

执行结果

03b28cfb8c9de7df9979ca9012101712.png

五、小结

以上就是Python在档案处理中几个常见的应用,希望透过今天的教学,对于在实务上的应用程式开发有所帮助。在练习的过程中如果有遇到任何问题,欢迎留言分享。

#python#

举报/反馈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值