forked from shenxianmq/MediaHelper
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path保留同目录最大的电影.py
55 lines (49 loc) · 1.98 KB
/
保留同目录最大的电影.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import os
import shutil
def remove_metadata(filepath):
dir_path = os.path.dirname(filepath)
basename = os.path.basename(filepath)
filename, ext = os.path.splitext(basename)
for ext in [
".nfo",
"-clearlogo.png",
"-fanart.jpg",
"-landscape.jpg",
"-poster.jpg",
]:
file = os.path.join(dir_path, filename + ext)
if os.path.exists(file):
try:
os.remove(file)
print(f"metadata file deleted: {file}")
except:
pass
def find_largest_mkv(directory):
"""
遍历指定目录下的一级子目录,找到每个子目录中最大的mkv文件并删除其他的。
"""
for subdir in os.listdir(directory):
subdir_path = os.path.join(directory, subdir)
if os.path.isdir(subdir_path):
mkv_files = [f for f in os.listdir(subdir_path) if f.endswith(".mkv")]
if len(mkv_files) > 1:
largest_mkv = max(
mkv_files,
key=lambda x: os.path.getsize(os.path.join(subdir_path, x)),
)
for mkv in mkv_files:
if mkv != largest_mkv:
os.remove(os.path.join(subdir_path, mkv))
remove_metadata(os.path.join(subdir_path, mkv))
print(f"已删除 {os.path.join(subdir_path, mkv)}")
print(f"找到最大的mkv文件: {os.path.join(subdir_path, largest_mkv)}")
# 使用示例
dir_list = [
"/Users/shenxian/CloudNAS/CloudDrive2/115/看剧/影视合集/电影/Remux/欧美电影",
"/Users/shenxian/CloudNAS/CloudDrive2/115/看剧/影视合集/电影/Remux/华语电影",
"/Users/shenxian/CloudNAS/CloudDrive2/115/看剧/影视合集/电影/Remux/日韩电影",
"/Users/shenxian/CloudNAS/CloudDrive2/115/看剧/影视合集/电影/Remux/动画电影",
]
if __name__ == "__main__":
for source_dir in dir_list:
find_largest_mkv(source_dir)