写入文件时终止l.split

时间:2018-10-31 18:08:33

标签: python performance

基本上,我在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 :(得分:0)

不确定我是否正确理解了您的问题。您是否正在尝试做这样的事情?

for l in infile:
    tokens = l.split()
    if len(tokens) > 19:
        # do something with tokens