基本上,我在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()
答案 0 :(得分:0)
不确定我是否正确理解了您的问题。您是否正在尝试做这样的事情?
for l in infile:
tokens = l.split()
if len(tokens) > 19:
# do something with tokens