针对这个话题,我可以给出以下完整攻略:
Python批量处理文件或文件夹的完整攻略
1. 使用 os
模块实现批量处理
Python内置的 os
模块提供了一组跨平台的操作文件和目录方法,可以帮助我们快速处理文件或文件夹。以下是其中几个最常用的方法:
1.1 获取指定目录下的所有文件或文件夹
可以使用 os.listdir()
方法获取指定目录下的所有文件或文件夹,返回值是一个列表:
import os
# 获取指定目录下的所有文件和文件夹,返回值是一个列表
file_list = os.listdir('path/to/directory')
print(file_list)
1.2 判断指定路径是否为文件或文件夹
可以使用 os.path.isdir()
和 os.path.isfile()
方法判断指定路径是否为文件或文件夹:
import os
# 判断指定路径是否为文件夹
is_dir = os.path.isdir('some/path')
print(is_dir)
# 判断指定路径是否为文件
is_file = os.path.isfile('some/path')
print(is_file)
1.3 文件或文件夹重命名
可以使用 os.rename()
方法实现文件或文件夹的重命名:
import os
# 重命名文件夹
os.rename('path/to/old_folder_name', 'path/to/new_folder_name')
# 重命名文件
os.rename('path/to/old_file_name', 'path/to/new_file_name')
1.4 删除文件或文件夹
可以使用 os.remove()
和 os.rmdir()
方法实现删除文件或文件夹:
import os
# 删除文件
os.remove('path/to/file')
# 删除文件夹
os.rmdir('path/to/folder')
2. 使用 shutil
模块实现批量处理
Python内置的 shutil
模块也提供了一组常见的文件和目录操作方法,包括复制、移动、删除等:
2.1 复制文件
可以使用 shutil.copy()
方法实现文件的复制:
import shutil
# 复制文件,注意第二个参数是目标文件名
shutil.copy('path/to/source_file', 'path/to/destination_file')
2.2 复制文件夹
可以使用 shutil.copytree()
方法实现文件夹的复制:
import shutil
# 复制文件夹,注意第二个参数是目标文件夹名
shutil.copytree('path/to/source_folder', 'path/to/destination_folder')
2.3 移动文件或文件夹
可以使用 shutil.move()
方法实现文件或文件夹的移动:
import shutil
# 移动文件
shutil.move('path/to/source_file', 'path/to/destination_file')
# 移动文件夹
shutil.move('path/to/source_folder', 'path/to/destination_folder')
2.4 删除文件或文件夹
可以使用 shutil.rmtree()
方法实现删除文件或文件夹,该方法会强制删除:
import shutil
# 删除文件
os.remove('path/to/file')
# 删除文件夹
shutil.rmtree('path/to/folder')
3. 实例说明
下面通过两个实际例子来说明如何使用上述方法批量处理文件或文件夹。
3.1 批量修改文件扩展名
假设我们需要将指定目录下的所有 .txt
文件的扩展名改为 .md
,可以使用以下方法:
import os
folder_path = 'path/to/folder'
for filename in os.listdir(folder_path):
if filename.endswith('.txt'):
old_path = os.path.join(folder_path, filename)
new_path = os.path.join(folder_path, filename.replace('.txt', '.md'))
os.rename(old_path, new_path)
print('Done')
该示例通过 os.listdir()
方法获取指定目录下的所有文件名,然后使用字符串操作方法将文件扩展名从 .txt
改为 .md
,最后使用 os.rename()
方法重命名文件。
3.2 批量压缩文件夹
假设我们需要将指定目录下的所有文件夹压缩成 .zip
格式,可以使用以下方法:
import os
import shutil
folder_path = 'path/to/folder'
for folder_name in os.listdir(folder_path):
if os.path.isdir(os.path.join(folder_path, folder_name)):
zip_name = folder_name + '.zip'
shutil.make_archive(zip_name, 'zip', os.path.join(folder_path, folder_name))
print('Done')
该示例通过 os.listdir()
方法获取指定目录下的所有文件夹名,然后使用 shutil.make_archive()
方法将文件夹压缩成 .zip
格式。注意,该方法会创建一个与文件夹同名的压缩文件,因此需要将压缩文件名赋值给一个变量后进行操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python批量处理文件或文件夹 - Python技术站