Coding-文件操作

中文字符文件名换成拼音

将输入文件夹里的图片压缩有存储到输出文件夹中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import os
import re
from pypinyin import pinyin, Style

def sanitize_filename(filename):
# 将汉字转换为拼音
pinyin_list = pinyin(filename, style=Style.NORMAL)
pinyin_string = ''.join([item[0] for item in pinyin_list])

# 移除非法字符,只保留字母、数字、"-"、"_"和"."
sanitized_filename = re.sub(r'[^\w\-_.]', '', pinyin_string)

return sanitized_filename

def sanitize_directory(directory):
# 获取目录下的所有文件和文件夹
items = os.listdir(directory)

# 遍历所有项
for item in items:
item_path = os.path.join(directory, item)

if os.path.isdir(item_path):
# 如果是目录,递归处理子目录
sanitize_directory(item_path)

# 修改目录名称
sanitized_dirname = sanitize_filename(item)
new_dir_path = os.path.join(directory, sanitized_dirname)

if item != sanitized_dirname:
os.rename(item_path, new_dir_path)
else:
# 如果是文件,修改文件名称
sanitized_filename = sanitize_filename(item)
new_file_path = os.path.join(directory, sanitized_filename)

if item != sanitized_filename:
os.rename(item_path, new_file_path)


# 设置文件夹路径
folder_path = 'input_floder'

# 递归修改目录和文件名称
sanitize_directory(folder_path)

其他格式图片转JPG

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import os
from PIL import Image

def convert_to_jpg(input_path, output_path):
with Image.open(input_path) as image:
# 转换为JPEG格式并保存
rgb_image = image.convert("RGB")
rgb_image.save(output_path, format="JPEG")

def convert_images_to_jpg(input_folder, output_folder):
# 如果输出文件夹不存在,则创建该文件夹
if not os.path.exists(output_folder):
os.makedirs(output_folder)

# 遍历文件夹下的所有子文件夹和文件
for root, dirs, files in os.walk(input_folder):
for file in files:
# 获取文件的完整路径
input_path = os.path.join(root, file)

# 检查文件是否为图片格式
if file.lower().endswith(('.png', '.bmp', '.gif', '.tiff')):
# 构建输出路径
output_path = os.path.join(output_folder, os.path.splitext(file)[0] + '.jpg')

# 将文件转换为JPEG格式
convert_to_jpg(input_path, output_path)

# 设置输入和输出文件夹路径
input_folder = 'input_folder'
output_folder = 'output_folder'

# 转换图片格式为JPEG
convert_images_to_jpg(input_folder, output_folder)