2013-08-16 23 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