mod去重工具
执行mod去重.exe或mod去重.py后输入异星工厂mods文件夹路径,会打印旧版本信息,根据提示判断是否执行删除旧版本。exe与py文件:
**** Hidden Message *****
mods文件夹可能的路径:
在《异星工厂》(Factorio)中,玩家自定义的MOD文件通常存放在以下路径:
Windows:
游戏根目录\mods
C:\Users\[你的用户名]\AppData\Roaming\Factorio\mods
MacOS:
~/Library/Application Support/factorio/mods
Linux:
~/.factorio/mods
你可以将下载的MOD文件(通常为.zip格式)放置在该路径中,然后在游戏启动时启用这些MOD。
执行摘要:
请输入路径: c:\1\1.1.1\mods
发现的文件及其版本:
aai-signals:
- 旧版本: aai-signals_0.5.zip
- 最新版本: aai-signals_0.6.1.zip
zik-lib: zk-lib_0.16.7.zip (只有一个版本)
ZRecycling: ZRecycling_1.1.4.zip (只有一个版本)
旧版本文件总占用空间: 56.05 MB
是否删除旧版本文件?(y/n): y
已删除旧版本文件: aai-signals_0.5.zip
已删除的旧版本文件总占用空间: 56.05 MB
按 Enter 键退出...
mod去重.pyimport os
import re
from collections import defaultdict
def get_zip_files(path):
"""
获取路径下所有.zip文件的名称
"""
if not os.path.exists(path):
print(f"路径 {path} 不存在,请检查路径输入。")
return []
# 只获取 .zip 文件
zip_files =
return zip_files
def extract_version(file_name):
"""
从文件名中提取出文件的主名称和版本号
假设文件名格式为 name_version.zip,例如: Mobile_Factory_0.11.4.zip
"""
# 使用正则表达式匹配文件名中的版本号
match = re.match(r"(.+?)_([\d.]+)\.zip", file_name)
if match:
return match.groups()# 返回 (name, version)
else:
return None, None
def sort_versions(files):
"""
根据文件名和版本号对文件进行分类和排序
返回 {name: } 的字典,并按版本号排序
"""
file_dict = defaultdict(list)
for file in files:
name, version = extract_version(file)
if name and version:
file_dict.append((file, version))
# 按版本号排序,假设版本号是语义化版本
for name in file_dict:
file_dict.sort(key=lambda x: list(map(int, x.split('.'))))
return file_dict
def print_duplicates_and_get_old_versions(file_dict):
"""
打印重复文件,并返回需要删除的旧版本文件列表
"""
old_versions_to_remove = []
print("\n发现的文件及其版本:")
for name, versions in file_dict.items():
if len(versions) > 1:
print(f"{name}:")
for file, version in versions[:-1]:# 打印除最新版本外的所有版本
print(f"- 旧版本: {file}")
old_versions_to_remove.append(file)
print(f"- 最新版本: {versions[-1]}")
else:
print(f"{name}: {versions} (只有一个版本)")
return old_versions_to_remove
def calculate_space(files, path):
"""
计算文件列表所占用的总空间
"""
total_size = 0
for file in files:
full_path = os.path.join(path, file)
if os.path.isfile(full_path):
total_size += os.path.getsize(full_path)
return total_size
def delete_old_versions(path, old_versions):
"""
删除旧版本文件并计算占用空间
"""
total_size = calculate_space(old_versions, path)
for file in old_versions:
full_path = os.path.join(path, file)
try:
os.remove(full_path)
print(f"已删除旧版本文件: {file}")
except Exception as e:
print(f"无法删除文件 {file}: {e}")
return total_size
def main():
path = input("请输入路径: ")
# 获取路径下的.zip文件
zip_files = get_zip_files(path)
if not zip_files:
print("没有找到.zip文件,程序结束。")
return
# 根据文件名和版本号进行排序
sorted_files = sort_versions(zip_files)
# 打印重复文件并获取要删除的旧版本文件列表
old_versions_to_remove = print_duplicates_and_get_old_versions(sorted_files)
if old_versions_to_remove:
# 计算旧版本文件占用的总空间
total_size = calculate_space(old_versions_to_remove, path)
print(f"\n旧版本文件总占用空间: {total_size / (1024 * 1024):.2f} MB")
user_input = input("是否删除旧版本文件?(y/n): ").lower()
if user_input == 'y':
deleted_size = delete_old_versions(path, old_versions_to_remove)
print(f"已删除的旧版本文件总占用空间: {deleted_size / (1024 * 1024):.2f} MB")
else:
print("未删除任何文件。")
else:
print("没有旧版本文件需要删除。")
if __name__ == "__main__":
main()
input("按 Enter 键退出...")
感谢分享!给你点赞!好东西,拿走了,临走顶个贴感谢一下楼主! 66666666666666666
非常感谢分享
棒棒棒棒棒
6666666666666666666
回复可见
感谢分享111111
666666666666666
fdgdsrgsdfshgdhfg 谢谢分享
›mod去重工具›
感谢分享 这个去重很厉害啊 执行mod去重.exe或mod去重.py后输入异星工厂mods文件夹路径,会打印旧版本信息,根据提示判断是否执行删除旧版本。
楼主一生平安!好人一生平安!感谢分享!论坛因你更精彩! 这就非常给力了!感谢分享!看到楼主这么努力分享,我只能顶个贴感谢一下了! 感谢分享!论坛因你更精彩!下载试用一下,如果用着不错就给楼主顶贴! 666666666
这就非常给力了!感谢分享!看到楼主这么努力分享,我只能顶个贴感谢一下了! 6666666666666666666666
感谢分享!给你点赞!看到楼主这么努力分享,我只能顶个贴感谢一下了! 感谢楼主。
f492ffffffgdgfdgd 66666666666666 重.exe或mod去重.py后输入异星工厂mods文件夹路径,会打印旧版本信息,根据提示判断是否执行删除旧
666666666666666666666 看看隐藏内容是什么!谢谢!好东西,拿走了,临走顶个贴感谢一下楼主! 感谢分享
先看看
看起来不错的样子,谢谢分享!!!!!!!!
页:
[1]
2