Привет други. В общем изучаю я питон, изучаю, как вдруг один из скриптов не хочет работать как нужно
import re
i = 0
g = 0
with open('ini_skills.txt', 'r+') as f:
with open('iii.csv', 'r+') as csv:
with open('ini_dump.txt', 'w') as b:
for line_txt in f:
i = i + 1
search_txt = re.findall(r'^\.([\w\d]*)\.', line_txt)
if search_txt:
for matches in csv:
g = g + 1
j = [part.strip('"').strip() for part in matches.rstrip().split(',')]
if j[0].strip() == search_txt:
text = re.sub(r'^\.([\w\d]*)\.', r'j[1]', line_txt).strip()
b.write(text)
print('Success!')
print(i)
print(g)
Я не знаю в чем проблема, но print(i) выводит 151, а print(g) выводит всего лишь 2, хотя должен 151 раз по 2 выводиться, получается 302. Возможно я не так понял цикл for, или условие не то поставил... Помогите добрые люди.
P.S. Если нужно, могу дать входные данные
aNNiPAk, задачу бы написал
есть два файла
ты ищешь дубликаты?
есть два файла, в одном ini_skills.txt в случайном месте выводиться строка с со словом между точками
// combat skills
.DODGE.[def:4][kau:5] [sar:5] [owl:5] [vag:5]
[ATTRIBS:agi spd eye]
[GROUP:combat]
.UNARMED.[def:3][kau:4][sar:4][dri:2][owl:4]
[ATTRIBS:agi spd str]
[GROUP:combat]
есть другой файл iii.csv, где каждая строка - это два слова через, и кавычки
"BUILDING","СТРОИТЕЛЬСТВО"
"WEATHERLORE","ЗНАНИЕ ПОГОДЫ"
Задача, нужно сравнить слово между точками в ini_skills.txt с первым словом между кавычками в iii.csv, и если они совпадают, то заменить это слово на второе слово между кавычками в iii.csv
# Swank (20.02.2016 / 19:44)
Не pyton, а Python
h - не читается, можно не писать, чего бумагу марать?
# Swank (20.02.2016 / 19:44)
Не pyton, а Python
Вах, вах, забиль как пшеться - напсать, напсаль, а праверить забиль, как так можно, а? А если серьёзно и по коду, есть что-нибудь?
aNNiPAk, тут как минимум один питонщик, но покак он не увидел тему, или празднует 23..
мне кажется, это задача на алгоритм
Набросал немножко, дальше не стал разбираться, что там нужно.
import csv
import re
if __name__ == '__main__':
with open('trans.csv', 'r') as trans:
trans = {key: value for key, value in csv.reader(trans)}
with open('source.txt', 'r') as source:
for line in source:
matches = re.match('^\.([\w]+)\.', line)
if not matches:
continue
word = matches.group(1)
if word in trans:
print(word, trans[word])