import os
import re
# 指定文件夹路径
folder_path = r'H:\BT\FC2'
# 编译正则表达式模式
pattern = re.compile(r'FC2-\d+.*?_')
# 遍历文件夹中的文件
for file_name in os.listdir(folder_path):
# 构建完整的文件路径
file_path = os.path.join(folder_path, file_name)
# 检查文件是否是普通文件(非文件夹)
if os.path.isfile(file_path):
# 使用正则表达式替换文件名
new_file_name = re.sub(pattern, 'new_pattern', file_name)
# 构建新的文件路径
new_file_path = os.path.join(folder_path, new_file_name)
# 检查新文件路径是否已存在
if os.path.exists(new_file_path):
print(f"文件 '{new_file_name}' 已存在,无法重命名")
else:
# 重命名文件
os.rename(file_path, new_file_path)
程式碼是由chatgpt幫忙寫的.
不過這個會顯示錯誤"當檔案已存在時,無法建立該檔案"
我們要修改的檔案當然是已經存在的檔案
如果不存在的檔案又如何可以被修改呢?
這樣的邏輯不是很奇怪?
# 检查新文件路径是否已存在
if os.path.exists(new_file_path):
print(f"文件 '{new_file_name}' 已存在,无法重命名")
else:
這段刪除試試
這行: new_file_name = re.sub(pattern, 'new_pattern', file_name)
要改成你要的格式阿
假設你的檔案名稱FC2-100acf.dsf_.pdf
,因為這檔案名稱符合條件,所以都會被換成new_pattern
,當第二個檔案被判斷到時,就會引發檔案名稱重複的問題,只是把判斷檔案名稱重複的部分移除是沒有用的。你要做的是定義清楚你要把檔案名稱改成怎樣的格式,然後把'new_pattern'改成你要的結果。
if os.path.exists(new_file_path):
print(f"文件 '{new_file_name}' 已存在,无法重命名")
else:
# 重命名文件
os.rename(file_path, new_file_path)
改成
if os.path.exists(new_file_path):
# 重命名文件
os.rename(file_path, new_file_path)