2015-10-06 262 views
1

我正在嘗試更改文件夾名稱和文件名。他們都有$,我想要一個#。這是我得到的更改目錄下的文件夾名稱和文件名

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

它不讀取目錄中的文件來更改文件名。任何幫助?另外,這會改變文件夾名稱嗎?

回答

1

如果你是路過,其實是一個目錄,那麼這樣的:

if os.path.isfile(directoryChosen):

永遠不會爲真,因爲isfile檢查是否你是路過,其實是一個文件。

在解釋運行help(os.path.isfile)會告訴你:

isfile(path) 
    Test whether a path is a regular file 

你想用什麼其實是isdir

if os.path.isdir(directoryChosen):

+0

我的代碼的其餘部分仍然很爛,但你教我的東西,並解決了我的問題。謝謝 ! – Anekdotin

+0

不要對自己很難。繼續堅持下去! :) 祝你好運。 – idjaw

相關問題