找回密码
 register

QQ登录

只需一步,快速开始

查看: 115|回复: 1

[游戏教程] Python 过滤全部手工文件中的40级以下装备和装备类道具 从文件中删除

[复制链接]

[游戏教程] Python 过滤全部手工文件中的40级以下装备和装备类道具 从文件中删除

[复制链接]
  • 打卡等级:热心大叔
  • 打卡总天数:94
  • 打卡月天数:17
  • 打卡总奖励:94
  • 最近打卡:2025-01-18 01:28:20
Waylee

主题

0

回帖

1万

积分

仙帝

积分
12396
Waylee 2023-12-4 17:00 | 显示全部楼层 |阅读模式

马上注册,查看网站隐藏内容!!

您需要 登录 才可以下载或查看,没有账号?register

×
需要准备的文件:
EquipBase.txt

ItemCompound.txt

放在同一目录内,将代码粘贴到这里
1排除40级以下装备.py

2删除武器类.py


分别执行,就会生成
去除40级装备的文件
第一步删除40级以下的手工 :FilteredItemCompound.txt
第二步生成删除武器的文件:FilteredItemCompound_ExcludeWeapons.txt

1排除40级以下装备.py


def read_file(file_path, encoding='utf-8'):
    with open(file_path, 'r', encoding=encoding) as file:
        return [line.strip().split('\t') for line in file.readlines()]

try:
    # 尝试使用UTF-8编码读取
    item_compound_data = read_file('ItemCompound.txt')
except UnicodeDecodeError:
    # 如果失败,则尝试使用GBK编码
    item_compound_data = read_file('ItemCompound.txt', encoding='gbk')

# 同样的方法应用于读取EquipBase.txt
try:
    equip_base_data = read_file('EquipBase.txt')
except UnicodeDecodeError:
    equip_base_data = read_file('EquipBase.txt', encoding='gbk')

# 后续处理步骤保持不变...


# 将EquipBase数据转换为字典,以便快速查找
equip_base_dict = {row[0]: row for row in equip_base_data}

# 过滤掉等级低于40的装备
filtered_item_compound_data = []
for item in item_compound_data:
    equip_id = item[2]
    if equip_id in equip_base_dict:
        equip_level = int(equip_base_dict[equip_id][11])  # 第12列是索引11
        if equip_level >= 40:
            filtered_item_compound_data.append(item)

# 可以选择将过滤后的数据写回到一个新文件,或按需处理
with open('FilteredItemCompound.txt', 'w', encoding='utf-8') as file:
    for item in filtered_item_compound_data:
        file.write('\t'.join(item) + '\n')



第二部分,执行删除武器类:'扇类', '双短类', '单短类', '弩类', '刀组类', '刀斧类', '枪棒类', '箫剑类', '长杖类', '环类'
2删除武器类.py

def read_file(file_path, encoding='utf-8'):
    with open(file_path, 'r', encoding=encoding) as file:
        return [line.strip().split('\t') for line in file.readlines()]

try:
    item_compound_data = read_file('FilteredItemCompound.txt')
except UnicodeDecodeError:
    item_compound_data = read_file('FilteredItemCompound.txt', encoding='gbk')

try:
    equip_base_data = read_file('EquipBase.txt')
except UnicodeDecodeError:
    equip_base_data = read_file('EquipBase.txt', encoding='gbk')

# 定义需要排除的装备类型
exclude_types = ['扇类', '双短类', '单短类', '弩类', '刀组类', '刀斧类', '枪棒类', '箫剑类', '长杖类', '环类']

# 将EquipBase数据转换为字典
equip_base_dict = {row[0]: row for row in equip_base_data}

# 过滤掉特定类型的装备
filtered_item_compound_data = []
for item in item_compound_data:
    equip_id = item[2]
    if equip_id in equip_base_dict:
        equip_type = equip_base_dict[equip_id][22]  # 第23列是索引22
        if equip_type not in exclude_types:
            filtered_item_compound_data.append(item)

# 写入过滤后的数据到新文件
with open('FilteredItemCompound_ExcludeWeapons.txt', 'w', encoding='utf-8') as file:
    for item in filtered_item_compound_data:
        file.write('\t'.join(item) + '\n')

全部代码:
装备排除.7z (281.61 KB, 下载次数: 0, 售价: 100 金币)






  • 打卡等级:热心大叔
  • 打卡总天数:94
  • 打卡月天数:17
  • 打卡总奖励:94
  • 最近打卡:2025-01-18 01:28:20
楼主
Waylee 楼主

主题

0

回帖

1万

积分

仙帝

积分
12396
Waylee 2023-12-4 18:35 | 显示全部楼层
上文没有查重:
这个进行查重
def read_file(file_path, encoding='utf-8'):
    with open(file_path, 'r', encoding=encoding) as file:
        return [line.strip().split('\t') for line in file.readlines()]

try:
    item_compound_data = read_file('ItemCompound.txt')
except UnicodeDecodeError:
    item_compound_data = read_file('ItemCompound.txt', encoding='gbk')

try:
    equip_base_data = read_file('EquipBase.txt')
except UnicodeDecodeError:
    equip_base_data = read_file('EquipBase.txt', encoding='gbk')

exclude_types = ['扇类', '双短类', '单短类', '弩类', '刀组类', '刀斧类', '枪棒类', '箫剑类', '长杖类', '环类']

equip_base_dict = {row[0]: row for row in equip_base_data}

filtered_item_compound_data = []
item_ids_seen = set()

for item in item_compound_data:
    equip_id = item[2]
    if equip_id in equip_base_dict and equip_id not in item_ids_seen:
        equip_type = equip_base_dict[equip_id][22]
        if equip_type not in exclude_types:
            filtered_item_compound_data.append(item)
            item_ids_seen.add(equip_id)

with open('FilteredItemCompound_ExcludeWeapons.txt', 'w', encoding='utf-8') as file:
    for item in filtered_item_compound_data:
        file.write('\t'.join(item) + '\n')

您需要登录后才可以回帖 登录 | register

本版积分规则

雪舞知识库 | 浙ICP备15015590号-1 | 萌ICP备20232229号|浙公网安备33048102000118号 |天天打卡

GMT+8, 2025-1-20 21:13 , Processed in 0.121115 second(s), 10 queries , Redis On.

Powered by XueWu Licensed

Copyright © Tencent Cloud.

快速回复 返回顶部 返回列表