我正在尝试编写一个函数来重命名文件夹,该文件夹从某些“输入”表单获取,并将结果保存在dlg.result中。选择的文件夹(他的名字),存储在selectedItems [0]中。
例如:
1)balancer / balancer / test.py-(更改为main)-> main / balancer / test.py(确定!)
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))
...
如果您只是想重命名非空目录,请使用shutil.move
。它将重命名目录,将目录的内容保存在适当的位置。该目录的新名称不应该存在,否则会遇到麻烦。
这是一个基本的例子。假设Balancer是您的当前目录:
import shutil
shutil.move('balancer/', 'main/')
函数的参数是源目录的文件路径(绝对路径或相对路径都可以)和相同路径的新名称。您无需对这些目录的内容做任何事情。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句