在Python中重命名文件夹

时间:2014-07-18 19:43:07

标签: python python-2.7

我正在尝试编写一个重命名文件夹的函数,该文件夹来自某个输入表单,并保存结果存储在dlg.result中。选择文件夹(他的名字),存储在selectedItems [0] 例如:
1)balancer / balancer / test.py - (改为main) - > main / balancer / test.py(OK!)
2)balancer / balancer / test.py - (更改第二个文件夹名称) - > balancer / main / test.py(不起作用)
如何修复第二项?

...    
for root, subdir, files in os.walk(file_path):
    for filename in files:
        file_in_folder_path = os.path.join(root, filename)
        file_hash, size = md5_for_file(file_in_folder_path)
        basic_folder = os.path.normpath(root) + '/'
        basic_folder = basic_folder.replace(defaultDir, '')
        new_path = basic_folder.replace(selectedItems[0], dlg.result, 1)
        new_path = new_path.replace(defaultDir, '')
        rnm_files.append((filename, basic_folder, file_hash, filename, new_path))
...

1 个答案:

答案 0 :(得分:3)

如果您只是想要一种重命名非空目录的方法,请使用shutil.move。它将重命名目录,保存目录的内容。该目录的新名称不应该已经存在,否则您将遇到麻烦。

这是一个基本的例子。假设平衡器是您当前的目录:

import shutil
shutil.move('balancer/', 'main/')

该函数的参数是源目录的文件路径(绝对或相对,两者都有效)和同一路径的新名称。您无需对这些目录的内容执行任何操作。