Opublikowano 10 Lipca 202410 Lip Cześć Dziś chciałem dodać sobie skrypt Pythona który generuje komentarze z nazwami pobieranymi z item_names.txt do mob_drop_item.txt ale coś mi nie idzie.. Moja wersja Pythona: Python 3.9.18 Na początku skrypt krzyczał o "import chardet" Zainstalowałem go poleceniem: pkg install py39-chardet Lecz teraz mam taki błąd przy generowaniu nowego mob_drop_item.txt Traceback (most recent call last): File "/usr/home/mt2/share/converter/drop.py", line 22, in <module> vnum, name = line.strip().split('\t') ValueError: not enough values to unpack (expected 2, got 1) A oto sam skrypt: import chardet import codecs def detect_encoding(filename): with open(filename, 'rb') as f: result = chardet.detect(f.read()) return result['encoding'] with codecs.open('item_names.txt', 'r', encoding='cp1250') as source_file: contents = source_file.read() with codecs.open('item_names_utf8.txt', 'w', encoding='utf-8') as target_file: target_file.write(contents) with open('item_names_utf8.txt', 'r', encoding='utf-8') as f: item_names = {} for line in f: if 'VNUM' in line or 'LOCALE_NAME' in line: continue vnum, name = line.strip().split('\t') item_names[vnum] = name drop_cpp_encoding = detect_encoding('mob_drop_item.txt') with open('mob_drop_item.txt', 'r', encoding=drop_cpp_encoding) as f: lines = f.readlines() new_lines = [] for line in lines: if line.startswith('Group') or 'exp' in line: new_lines.append(line) else: parts = line.split('\t') if len(parts) > 2 and parts[2] in item_names: line = line.rstrip() + ' // ' + item_names[parts[2]] + '\n' new_lines.append(line) with open('mob_drop_item2.txt', 'w', encoding='utf-8') as f: f.writelines(new_lines)
Opublikowano 10 Lipca 202410 Lip Rozwiązanie Z błędu wynika, że w pliku item_names_utf8 napotyka złe formatowanie albo puste linie. Spróbuj zmienić tak: with open('item_names_utf8.txt', 'r', encoding='utf-8') as f: item_names = {} for line in f: if 'VNUM' in line or 'LOCALE_NAME' in line: continue parts = line.strip().split('\t') if len(parts) == 2: vnum, name = parts item_names[vnum] = name Nie wiem, co tam używasz tabów czy spacje, ale to sobie dostosuj tu masz taby bo wyrzuci błędy z syntaxem.
Opublikowano 10 Lipca 202410 Lip Autor Używam tabulatorów ale mam też dodane komentarze rozdzielajace na metiny/moby/bossy
Opublikowano 10 Lipca 202410 Lip Autor Dziękuje @Sevence ❤️ Nie ukrywam, że można to rozbudować o tłumaczenie moba nawet 😄 no ale można go też wpisać w Group Edytowane 10 Lipca 202410 Lip przez Marchewa
Cześć
Dziś chciałem dodać sobie skrypt Pythona który generuje komentarze z nazwami pobieranymi z item_names.txt do mob_drop_item.txt ale coś mi nie idzie..
Moja wersja Pythona:
Na początku skrypt krzyczał o "import chardet"
Zainstalowałem go poleceniem:
Lecz teraz mam taki błąd przy generowaniu nowego mob_drop_item.txt
A oto sam skrypt: