サブフォルダを含むメインディレクトリのイメージの名前を変更する必要があります。私が今使っているスクリプトは、私が必要とするものではありません。それを正しく行うには、今私はそれを持っている:サブフォルダ内のファイル名の一部の変更python
maindir #my example origin
├── Sub1
│ ├── example01.jpg
│ ├── example02.jpg
│ └── example03.jpg
└── Sub2
├── example01.jpg
├── example02.jpg
└── example03.jpg
マイスクリプト行うこと:
maindir
├── Sub1
│ ├── Sub1_example01.jpg
│ ├── Sub1_example02.jpg
│ └── Sub1_example03.jpg
└── Sub2
├── Sub2_example01.jpg
├── Sub2_example02.jpg
└── Sub2_example03.jpg
そして、私はそれを取得したいと思い:私のサブフォルダ名によって、私のファイル名の文字を置換しておきます私のjpgの原点番号:
maindir
├── Sub1
│ ├── Sub1_01.jpg
│ ├── Sub1_02.jpg
│ └── Sub1_03.jpg
└── Sub2
├── Sub2_01.jpg
├── Sub2_02.jpg
└── Sub2_03.jpg
私が使用して自分のコード4魔女があります:
from os import walk, path, rename
parent = ("F:\\PS\\maindir")
for dirpath, _, files in walk(parent):
for f in files:
rename(path.join(dirpath, f), path.join(dirpath, path.split(dirpath)[-1] + '_' + f))
を、私は私の結果を得るためにoverhere変更しなければならないものは?
rename(path.join(dirpath, f), path.join(dirpath, path.split(dirpath)[-1] + '_' + f))
がstr.replace
を使用して新しい名前を生成します:
newf = f.replace("example",os.path.basename(dirpath)+"_")
が、その後
rename(path.join(dirpath, f), path.join(dirpath,newf))
はもちろん、あなたが拡張またはわからない場合は、代わりにそのラインの
あなたは、単にあなたのファイル名からexample' '文字列を削除しますか?もしそうでなければ、あなたのファイル名の構造を知っていますか?数字はいつも終わりですか?それは常に2桁の長さですか? =>ドットで分割し、最後の2文字を取ります。そうでない場合、これは正規表現のためのものかもしれません。 –