更改目录下的foldername和文件名

时间:2015-10-06 00:25:01

标签: python

我正在尝试更改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吗?

1 个答案:

答案 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):