Python社区
今天,我试图编写一个GUI脚本,以便能够根据用户的意愿来重命名文件夹或文件。我创建了两个不同的按钮:一个用于重命名文件夹,一个用于重命名文件。 我的问题是如果我有f.e.一个包含多个文件夹和几个.txt文件的文件夹,我的脚本无法仅重命名该文件夹或仅重命名.txt文件。
为解决此问题,我想到了使用os.path.isdir函数生成TRUE和FALSE值的列表的方法,文件夹称为TRUE,然后重命名满足此条件的对象。 因为我是编程新手,所以我的知识是有限的,因此,如果有人愿意给我一个想法,如如何改善我的代码并能够设计自己的GUI,我将感到非常高兴。
这是我的代码的一部分(仅与我的较大GUI代码相对应):
import os
Pattern = self.PatternName.text()
#Rename Folders
objects = os.listdir(self.folders)
i = 0
for folder in objects:
os.rename(os.path.join(self.folders, folder),
os.path.join(self.folders, Pattern + str(i)))
i += 1
#Rename Files
files = os.listdir(self.files)
i = 0
for file in files:
filename, file_extension = os.path.splitext(file)
os.rename(os.path.join(self.files, file),
os.path.join(self.files, Pattern + str(i) + file_extension))
i += 1
非常感谢您。
最好的问候, 金
答案 0 :(得分:0)
尝试使用python的os.walk函数。来自python 2 documentation :(也可以在python 3中使用)
对于以目录顶部(包括顶部)为根的树中的每个目录 本身),则生成一个三元组(目录路径,目录名,文件名)
我不知道这是否正是您要执行的操作,因为这会递归遍历整个目录结构,而不仅仅是下一级目录。