3

K.. ここで見つけた簡単なスクリプトを使用しています。

import os
from os import rename, listdir

print os.listdir(".")
for filename in os.listdir("."):
    if filename.startswith("colon-"):
        print filename
        os.rename(filename, filename[7:])

基本的に、colon-21.mp3 などのすべてのファイルを 21.mp3 に変換する必要があります。

しかし、エラーが表示されますCANNOT CREATE A FILE WHEN THAT FILE ALREADY EXISTS. どうすればこれを解決できますか? Windows 7 を使用しています。

4

1 に答える 1

5

問題はここにあります:

os.rename(filename, filename[7:])

Python インデックスは 0 から始まり、文字列の"colon-"長さはわずか 6 文字であるため、コードを使用すると、colon-21.mp3 は 1.mp3 になります。その行をfilename[6:]代わりに使用するように変更すると、問題は解決するはずです。

とはいえ、あなたが行っているようにハードコードされた文字列の長さを使用することはお勧めできません。ここで発見した理由とまったく同じ理由で、エラーが発生しやすくなります (このようなハードコードされた数字は、特定の長さに設定されている理由を伝えるのが難しいため、「マジック ナンバー」と呼ばれることがよくあります)。優れた代替手段は次のとおりです。

os.rename(filename, filename.split('-')[1])
于 2012-11-24T10:20:41.383 に答える