其他
这几个 Python 操作文件的常用库,强推!
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
模块是高级的文件,文件夹,压缩包的处理模块,能处理拷贝大多数文件数据,但是在Windows
和POSIX
平台上,文件所有者,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 知识库的开源项目,构建私人知识网络
4、保存网页时“丢三落四”?8k Star 的开源扩展,一键完美保存完整网页
点分享
点点赞
点在看