我正在尝试更改foldername和文件名。他们都有$,我想要#。这是我得到的
def cleanFiles(self):
#directory = '/Users/eeamesX/work/data/Sept_1_upload/priority_2/transcriptsAudoSplits/09012015_331_male3_r1_seg1/IT_007/hell$o '
directoryChosen = self.directoryChoice()
print directoryChosen + " you made it to files selected"
self.listWidget.addItem(directoryChosen)
#for file_names in os.listdir(directoryChosen):
#self.listWidget.addItem(file_names)
for n in os.listdir(directoryChosen):
print n + " made it here"
if os.path.isfile(directoryChosen):
print directoryChosen + "almost there"
newname = n.replace('$', '#')
print newname + " this is newname"
if newname != n:
os.rename(n,newname)
print '\n--------------------------------\n'
for n in os.listdir(directoryChosen):
print n
self.lblNamechange.show()
我通过打印确定了我的问题。它在行
if os.path.isfile(directoryChosen):
它不会读取目录中的文件来更改文件名。有帮助吗?此外,这会改变foldername吗?
答案 0 :(得分:1)
如果您传递的内容实际上是一个目录,那么:
if os.path.isfile(directoryChosen):
将永远不会为True,因为isfile
会检查您传递的内容实际上是否为文件。
在解释器中运行help(os.path.isfile)
将显示:
isfile(path)
Test whether a path is a regular file
您想要使用的是isdir
:
if os.path.isdir(directoryChosen):