You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

批量重命名工具中raw string与input()/PySimpleGUI路径输入适配问题

批量重命名工具:PySimpleGUI集成与代码修复

核心问题澄清

你纠结的raw string问题本质是:raw string仅作为Python字符串字面量写法存在,变量存储的路径字符串不需要额外转成raw格式——用户输入或GUI选择的路径,Python会自动处理转义字符,直接使用即可,无需特殊处理。

集成PySimpleGUI实现可视化交互

用PySimpleGUI的文件夹选择组件替代手动输入路径,既避免输入错误,也解决你担心的路径处理问题。同时修复原代码中的逻辑BUG,以下是完整可运行代码:

import os
import time
import PySimpleGUI as sg

# 替代你自定义的space模块,若已有该模块可直接保留原导入
def space():
    print("\n" * 2)

class Renevolution:
    def start(self, folder, new_prefix):
        start_process = time.time()
        file_list = os.listdir(folder)
        counter_folders = len(file_list)
        
        # 批量重命名逻辑
        for file_name in file_list:
            old_path = os.path.join(folder, file_name)
            # 跳过文件夹(如果需要重命名文件夹可删除此判断)
            if os.path.isdir(old_path):
                counter_folders -= 1
                continue
            # 构造新文件名:前缀 + 原文件名(可根据需求调整命名规则)
            new_file_name = f"{new_prefix}{file_name}"
            new_path = os.path.join(folder, new_file_name)
            os.rename(old_path, new_path)
        
        end_process = time.time()
        space()
        # 打印重命名后的文件列表
        enumerate_files = 1
        for file in os.listdir(folder):
            print(f'{enumerate_files} 文件 - {file}')
            enumerate_files += 1
        
        return f'处理完成,耗时 {(end_process - start_process):.2f} 秒。\n程序结束!'

# PySimpleGUI界面布局
layout = [
    [sg.Text('选择目标文件夹:'), sg.FolderBrowse(key='-FOLDER-'), sg.Input(key='-FOLDER_INPUT-')],
    [sg.Text('输入文件名前缀:'), sg.Input(key='-PREFIX-')],
    [sg.Button('开始重命名'), sg.Button('退出')]
]

window = sg.Window('批量重命名工具', layout)

while True:
    event, values = window.read()
    if event == sg.WIN_CLOSED or event == '退出':
        break
    if event == '开始重命名':
        folder_path = values['-FOLDER-']
        new_prefix = values['-PREFIX-']
        if not folder_path or not new_prefix:
            sg.popup_error('请选择文件夹并输入前缀!')
            continue
        # 执行重命名
        RT = Renevolution()
        result = RT.start(folder_path, new_prefix)
        sg.popup(result)

window.close()

关键修改说明

  • 用os.path.join()拼接路径,避免手动拼接字符串导致的路径分隔符错误(Windows用\,Linux用/)
  • 修复原代码中参数与全局变量混用的问题(原start方法误用未传入的folder_path)
  • 添加跳过文件夹的判断(若需要重命名文件夹可删除该逻辑)
  • 用PySimpleGUI的FolderBrowse组件实现可视化目录选择,彻底避免手动输入路径的麻烦
  • 修复文件计数与遍历逻辑的错误,现在能正确统计并显示重命名后的文件

内容的提问来源于stack exchange,提问作者Sérgio Lima

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 07:22:57