2013-08-16 22 views
0

我試圖通過替換掉逗號來重命名文件。 我有一個函數可以找到錯誤,並通過點擊按鈕將 傳遞給另一個函數。 第二個例子很明顯,但是我相信第一個例子中的 os.rename會將其重新帶回。 我在做什麼錯?重命名列表文件找不到文件

  if self.filenames: 
        print self.dirname ## finds directory 
        path = self.dirname 
        dirList=os.listdir(path)       
        for self.filename in dirList: 
          print self.dirname ## finds directory 
          f = self.filename 
          print f ## finds c,1.txt !!! 
          if not f.startswith('.') and f.find(',') >= 0: 
            os.rename(f, f.replace(',','')) 

回溯: C,1.txt的 該系統找不到指定的文件

  if self.filenames: 
        print self.dirname ## finds directory       
        for self.filename in os.listdir("."): 
          print self.dirname ## finds directory 
          f = self.filename 
          print f 
          if not f.startswith('.') and f.find(',') >= 0: 
            os.rename(f, f.replace(',','')) 

替換工作目錄中的

回答

0

文件,我想你應該改變os.rename(f, f.replace(',',''))os.rename(os.path.join(self.dirname, f), os.path.join(self.dirname, f.replace(',','')))。本質上,rename函數需要一個到文件的有效路徑,並且如果該文件不在當前目錄中,則需要將基礎目錄路徑連接到文件名。

+0

這樣做Subhasis。我會記得包含os.path.join – George