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这有助于您获得更好的建议 –