0

コンマを置き換えてファイルの名前を変更しようとしています。ボタンのクリックでエラーを見つけて別の関数に渡す関数があります。2 番目の例は明らかですが、最初の例の 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(',',''))

作業ディレクトリ内のファイルを置き換えます

4

1 に答える 1

0

os.rename(f, f.replace(',',''))に変更する必要があると思いますos.rename(os.path.join(self.dirname, f), os.path.join(self.dirname, f.replace(',','')))。基本的に、rename関数はファイルへの有効なパスを想定しており、ファイルが現在のディレクトリにない場合は、ベース ディレクトリ パスをファイル名に連結する必要があります。

于 2013-08-16T04:02:25.197 に答える