У меня есть код Python, который генерирует список строк из необработанного файла, и я хочу найти определенное поле столбца [поле 4-го столбца с для строк, имеющих IT во втором поле, поле 5-го столбца для строк, имеющих FW.O во вторых полях] и совпадение с полями содержимого внешнего файла и строк печати.
L = '''SET,FW.O,AS,num:+18700000,num:+12355,
SET,IT,AS,num:+22211111,num:+12355,
SET,FW.O,AS,num:+177232,num:+12355,
SET,IT,AS,num:+368399793,num:+12355,
'''.split()
FWmatch = open("fwfields.txt").readlines()
ITmatch = open("itfields.txt").readlines()
for row in L:
if row[1] == "IT":
result = [i for i in L if any(x.replace('\n','') in i.split(',')[3] for x in ITmatch)]
elif row[1] == "FW.O":
result = [i for i in L if any(x.replace('\n','') in i.split(',')[4] for x in FWmatch)]
print('\n'.join(result))
, если в поле "L" 2-го столбца указано "IT", ITmatch
должно искать в поле 5-го столбца.
если в поле «L» 2-го столбца указано «FW.O» FWmatch
, следует искать в поле 5-го столбца.
cat fwfields.txt
num:+12
num:+123
cat itfields.txt
num:+222
num:+333
Получение ошибки как «output» не определено, так как мой код не работает, а переменная output не определена. Получение IndexError, если я удаляю .split () в «L». Требуемый выход:
SET,FW.O,AS,num:+18700000,num:+12355,#(5th field matched with FWmatch num:+123)
SET,IT,AS,num:+22211111,num:+12355,#(4th field matched with ITmatch num:+222)
SET,FW.O,AS,num:+177232,num:+12355,#(5th field matched with FWmatch num:+123)