查看原文
其他

这几个 Python 操作文件的常用库,强推!

IT服务圈儿 2023-02-06

The following article is from 菜J学Python Author J哥

源丨经授权转自 菜J学Python(ID:caijxuepy)

作者丨J哥


本文将介绍几个常用的文件处理模块,包括os模块、shutil模块以及zipfile模块,掌握好这几个模块对于我们熟练操作和管理文件大有帮助。

os模块

Python内置有关文件路径的模块os,可以直接导入该模块。os模块中有另一个常用模块os.path

#先导入模块
import os 

#获取当前工作目录:os.getcwd()
print("当前工作目录:",os.getcwd())

#获取绝对路径:os.path.abspath(path)
print("当前工作目录绝对路径:",os.path.abspath(".")) #列出目前工作目录的绝对路径
print(os.path.abspath("..")) #列出上一层目前工作目录的绝对路径
print(os.path.abspath("hello.py")) #列出目录文件的绝对路径

#传回特定路段相对路径:os.path.relpath(path,start)
print(os.path.relpath("C:\\")) #列出当前工作目录至C:\\的相对路径
print(os.path.relpath("C:\\","hello.py")) #目前文件目录文件至C:\\的相对路径

#检查路径方法:exists/isabs/isdir/isfile(path)
print("文件是否存在:",os.path.exists("hello.py")) 

shutil模块

shutil模块提供了一些针对文件和目录,压缩包的高级操作,主要是拷贝、移动。shutil模块是高级的文件,文件夹,压缩包的处理模块,能处理拷贝大多数文件数据,但是在WindowsPOSIX平台上,文件所有者,ACL以及ADS(供选数据流)不会被复制。

import shutil
#文件复制:shutil.copy(source,destination)
shutil.copy("write_test.txt","write_test_copy.txt")

#目录复制:shutil.copytree(source,destination)
#文件移动:shutil.move(source,destination)
#文件名更改:shutil.move(source,destination)
#目录的移动:shutil.move(source,destination)
#目录名的更改:shutil.move(source,destination)
#彻底删除底下有数据的目录:shutil.rmtree(path) 
#安全删除文件或目录:send2trash(文件或文件夹)  需要pip install send2trash
'write_test_copy.txt'

zipfile模块

Windows系统提供文件压缩与解压缩,语法格式:fileZip = zipfile.ZipFile("out.zip","w")。使用方法:首先使用ZipFile()方法建立一份压缩后的档名,在这个方法中另外加入"w"参数,注明未来是供write()方法写入。

#压缩文件
import zipfile
import os,glob

my_dir = "zip_test1" #新建zip_test文件夹
if os.path.exists(my_dir):
    print(f"{my_dir}文件已存在")
else:
    os.mkdir(my_dir)  
    print(f"建立{my_dir}文件成功")

fileZip = zipfile.ZipFile("zip_test1.zip","w")  #压缩文件对象,即zip_test1文件夹
for name in glob.glob("zip_test1/*"):
    fileZip.write(name,os.path.basename(name),zipfile.ZIP_DEFLATED) #最后一个参数说明压缩方式
fileZip.close()

#解压文件
unpack_zip = zipfile.ZipFile("zip_test1.zip"#解压文件对象,即zip_test1文件夹
unpack_zip.extractall("zip_test2")  #解压到zip_test2文件夹
unpack_zip.close()
zip_test1文件已存在


1、支持中文!秒建 wiki 知识库的开源项目,构建私人知识网络

2、Bug是如何产生的?

3、一个 "丧心病狂" 的开源项目

4、保存网页时“丢三落四”?8k Star 的开源扩展,一键完美保存完整网页

5、几行Python代码实现动图倒放,太好玩

点分享

点点赞

点在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存