Python速成笔记——进阶(组织文件)

或许你有过这样的经历,查找一个文件夹,里面有几十、几百、甚至上千个文件,需要手动进行复制、重命名、移动或压缩,或者你需要完成下面的这些任务。

  • 在一个文件夹及其子文件夹中,复制所有的PDF文件
  • 针对一个文件夹中的所有文件,删除文件名中的前导0
  • 将几个文件夹的内容压缩到一个ZIP文件中。

所有类似这种的繁琐任务,都能够通过Python实现自动化。


目录

1 shutil 模块

1.1 复制文件和文件夹

1.2 移动和重命名文件和文件夹

1.3 删除文件和文件夹

1.4 用send2trash 模块安全地删除

2 遍历目录树

3 Zipfile模块压缩文件

3.1 读取ZIP文件

3.2 解压缩ZIP文件

3.3 创建和添加ZIP文件



1 shutil 模块

shutil模块中包含的一些函数,能够让你使用Python程序中复制、移动、重命名和删除文件。

1.1 复制文件和文件夹

  • 调用shutil.copy(Spath, Epath)函数,将原路径Spath中的文件复制到目标路径Epath处的文件夹;
  • 如果Epath为一个文件名,那么它将作为被复制文件的新名称;
  • shutil.copy()函数返回被复制文件的路径
  • 调用shutil.copytree(Spath, Epath)函数,将原路径Spath中的文件夹(包含所有子文件及文件)复制到目标路径Epath处的文件夹;
  • shutil.copytree()函数返回新复制的文件夹的路径

ps1:使用shutil.copy()函数时,Epath为文件夹路径必须已存在

ps2:重名的文件无法被创建

import shutil, os
from pathlib import Path

p = Path.cwd() #提取当前工作目录
print(p)
#将test.txt文件复制到文件夹project中
pathnew = shutil.copy(p / 'test.txt', p / 'project' ) 
print('shutil.copy() 返回值:', pathnew)

#将test.txt文件复制到文件夹project中并命名为testnew.txt
pathnew = shutil.copy(p / 'test.txt', p / 'project\\testnew.txt' ) 
print('shutil.copy() 返回值:', pathnew)

#将project文件夹复制到文件夹project_new文件夹
pathnew = shutil.copytree(p / 'project', p / 'project_new')
print('shutil.copytree() 返回值:', pathnew)

# @梦想家LEI 2024.10.06

输出结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦想家LEI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值