Завершение l.split при записи в файл - PullRequest
0 голосов
/ 31 октября 2018

По сути, у меня есть функция в Python, которая берет файл из .txt и получает определенную информацию из него с помощью l.split. Что-то случилось с бревнами, которые я получал там, где они больше не носят форму. Моя функция пытается l.split в позиции 18, но теперь в некоторых строках файла журнала нет 18 объектов. Мне нужна помощь в написании оператора if или в поиске какого-либо способа избежать ошибки индекса за пределами границ, которую я получаю. Есть ли способ проверить, содержит ли строка в файле .txt хотя бы 19 различных объектов в строке, и не пропускает ли она эту строку? Спасибо за помощь!

infile = open('radius.log-20181025.txt', 'r')
outfile = open('goodlogs5.txt', 'w')

for l in infile:
outfile.write(l.split()[+0] +'-') #Gets Day
outfile.write(l.split()[+1] +'-') #Gets Month
outfile.write(l.split()[+3] + ',')  # Gets Year
outfile.write(l.split()[+2] + ',')  # Gets Time
outfile.write(l.split()[-2] + ',')  # Gets Device
outfile.write(l.split() [+9] + ',')  # Gets FSU ID
outfile.write(l.split()[+18] + ',')  # Gets AP, 
outfile.write(l.split()[+19] + ',')  # Gets AP Group
outfile.write(l.split()[+16] + '\n')  # Gets MAC

infile.close()
outfile.close()

1 Ответ

0 голосов
/ 31 октября 2018

Не уверен, правильно ли я понял ваш вопрос. Вы пытаетесь сделать что-то подобное?

for l in infile:
    tokens = l.split()
    if len(tokens) > 19:
        # do something with tokens
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...