0
私はムービーコレクションをリッピングするプログラムを持っていますが、私はそれをさらに自動化しようとしています。私の目的は、各フォルダーを検索し、 ".mkv"ファイルを探し、見つかった場合はルートフォルダーに移動し、元のフォルダーを削除することです。Pythonを使用してファイルを拡張子でルートフォルダに移動
私はこれをうまく使いこなしていますが、それは動作していますが、どのようにしてよりうまく書き込めるか不思議です。本質的にこの疑似コードを実行する方法はありますか?
loop each folder:
if folder has files:
if file extention is '.mkv':
move file to '/media/movies/'
フォルダ構造は、ここで
C:/Users/Matthew/Desktop/New folder (2)
- Test Movie
~ Test_Movie_t00.mkv
- Alpha Movie
~ Alpha_Movie_t200.mkv
- Greatest Movie Ever
~ Greatest_Movie_Ever_t100.mkv
~ Good Format Movie.mkv
~ Stackoverflow the Movie.mkv
で働く私のコードです。
import os
import re
print("Running Cleaner\n")
directory = 'C:/Users/Matthew/Desktop/New folder (2)'
directorylength=len(directory)+1
folders = []
movies = []
for root, dirs, files in os.walk(directory, topdown=False):
for name in dirs:
#print(os.path.join(root, name)[strlength:])
folders.append(os.path.join(root, name)[directorylength:])
for folder in folders:
for file in os.listdir(directory + "/" + folder):
if file.endswith(".mkv"):
#print(os.path.join(folder, file))
movies.append(os.path.join(folder, file)[len(folder)+1:])
for folder in folders:
for movie in movies:
if os.path.exists(directory + "/" + folder + "/" + movie):
file=folder + "/" + movie
print("Found: " + file)
newFile = re.sub('_t\d{2,}.mkv',".mkv",file)
newFile = re.sub('_',' ',newFile)
newFile = newFile[len(folder)+1:]
print("Renaming to: " + newFile)
os.rename(directory + "/" + file, directory + "/" + newFile)
print("Removing empty folder: " + folder)
os.rmdir(directory + "/" +folder)
print("\nFinished Cleaning up!")
スローされます、あなたはグロブを使用してみましたか? – liorko
https://codereview.stackexchange.comに追加すると、より良い提案を得るのに役立ちます –