作者:zxcvbnm89 | 来源:互联网 | 2024-11-25 16:01
本文介绍了一个Python脚本,用于批量处理并移除指定目录下不同格式文件(如png、jpg、xml、json、txt、gt等)的文件扩展名。该方法通过递归遍历文件夹中的所有文件,并对每个文件执行重命名操作。
为了批量处理和移除文件的扩展名,我们可以通过编写一个简单的Python脚本来实现这一功能。此脚本将遍历指定目录下的所有文件,并针对每种类型的文件执行相应的重命名操作,以移除其扩展名。
首先,创建一个名为remove_extension.py
的Python脚本文件,其代码如下所示:
# 编码: utf-8
import os
import shutil
source_dir = 'images/' # 存放原始带扩展名文件的目录
output_dir = 'images_no_ext/' # 移除扩展名后的文件存放目录
# 定义函数,用于重命名单个文件
def rename_file(old_name, new_name):
print(f'旧文件名: {old_name}')
print(f'新文件名: {new_name}')
shutil.copyfile(old_name, new_name) # 复制文件到新位置
shutil.move(new_name, output_dir) # 将新文件移动至目标目录
# 定义函数,用于列出并处理指定路径下的文件
def process_files_in_path(path):
if os.path.isfile(path):
file_extension = os.path.splitext(path)[1] # 获取文件扩展名
if file_extension in ['.jpg', '.png', '.xml', '.json', '.txt', '.gt']:
new_file_name = path.replace(file_extension, '') # 构建新的文件名
rename_file(path, new_file_name)
# 定义递归函数,用于遍历目录下的所有文件
def traverse_directory(directory):
for item in os.listdir(directory):
item_path = os.path.join(directory, item)
if os.path.isdir(item_path):
traverse_directory(item_path)
else:
process_files_in_path(item_path)
if __name__ == '__main__':
if not os.path.exists(output_dir):
os.makedirs(output_dir) # 如果目标目录不存在,则创建
traverse_directory(source_dir)
通过上述脚本,您可以轻松地批量处理各种类型的文件,去除它们的扩展名,并将处理后的文件保存在指定的目标目录中。