[]はフォルダです。
A:\というフォルダ内に
[data]
data.mp4
Bというフォルダ内に
[data-01]
[data-02]
[data-03]
data-01.mp4
data-02.mp4
data-03.mp4
という構造の時に
A内の[data]とdata.mp4を
[data-04]
data-04.mp4
にリネームしてBに移動するプログラムを書きたいのです。
リネームする-??の数値は、B内に数あるdata-??の最大値に+1してリネームされるようにしたいです。
なお、名前のdataの部分は他のプログラムとの兼ね合いがあるので、いじらない形で管理したいです。
リネームも移動も書けるのですが、フォルダリストから最大値を抜き出すという段階でつまづいてしまいました。
追記及び修正
python
1import shutil 2import os 3from pathlib import Path 4 5output_dir = Path("A:/output") 6input_dir = Path("A:/input") 7 8dataList = [] 9 10for path in output_dir.glob('*.*'): 11 dataName = path.name.split("-")[1] 12 dataNumber = os.path.splitext(dataName)[0] 13 14 dataList.append(dataNumber) 15 16RenameNumber = int(max(dataList)) + 1 17RenameNumberName = 'data-' + str(RenameNumber).zfill(2) 18 19shutil.move(str(input_dir) + "/data.txt", str(output_dir) + "/" + RenameNumberName + ".txt") 20shutil.move(str(input_dir) + "/data", str(output_dir) + "/" + RenameNumberName ) 21
以上でなんとか動くようにはなりました…。
質問は2点です。
①上記コードの綺麗な書き方
②上記コードでinput_dirにpathを書いているのですが、実際はこのpyファイルの実行場所を取得したいので、その書き方
よろしくお願い致します。
回答3件
あなたの回答
tips
プレビュー