0

Pythonでいくつかのファイルを移動しようとしていますが、名前にスペースが含まれています。文字列をファイル名として扱うようにPythonに具体的に指示する方法はありますか?

listing = os.listdir(self.Parent.userTempFolderPath)
for infile in listing:
    if infile.find("Thumbs.db") == -1 and infile.find("DS") == -1:

        fileMover.moveFile(infile, self.Parent.userTempFolderPath, self.Parent.currentProjectObject.Watchfolder, True)

リストからファイルを取得した後、ファイルを実行os.path.existsして存在するかどうかを確認しますが、存在することはありません。誰かが私にここでヒントを与えることができますか?

4

1 に答える 1

1

ファイル名のスペースは問題ではありません。os.listdirフルパスではなく、ファイル名を返します。

それらをテストするには、ファイル名にそれらを追加する必要があります。os.path.joinプラットフォームに適したディレクトリセパレータを使用して、これを実行します。

listing = os.listdir(self.Parent.userTempFolderPath)
for infile in listing:
    if 'Thumbs.db' not in infile and 'DS' not in infile:
        path = os.path.join(self.Parent.userTempFolderPath, infile)

        fileMover.moveFile(path, self.Parent.userTempFolderPath, self.Parent.currentProjectObject.Watchfolder, True)

ファイル名テストも簡略化したことに注意してください。使用する代わりに.find(..) == -1、演算子を使用しnot inます。

于 2012-07-05T20:15:13.500 に答える