如果这篇文章很长,我深表歉意,但我试图尽可能详细。我已经对该主题进行了大量研究,并且认为自己是一个“中级”熟练的程序员。
我的问题:我有一个包含多行数据的文本文件。我想删除每行的某些部分以消除一些不相关的信息,然后使用新格式化的行保存文件。
这是我想要完成的一个例子。原行是这样的:
access-list inbound_outside1 line 165 extended permit tcp any host 209.143.156.200 eq www (hitcnt=10086645) 0x3eb90594
我试图让代码读取文本文件,并输出:
permit tcp any 209.143.156.200 www
以下代码有效,但前提是文本文件中有一行:
input_file = open("ConfigInput.txt", "r")
output_file = open("ConfigOutput.txt", "w")
for line in input_file:
line = line.split("extended ", 1)[1]
line = line.split("(", 1)[0]
line = line.replace(" host", "")
line = line.replace(" eq", "")
output_file.write(line)
output_file.close()
input_file.close()
但是,当我尝试使用包含多行数据的完整文件运行它时,我收到一个错误:
File "C:\Python27\asaReader", line 5, in <module>
line = line.split("extended ", 1)[1]
IndexError: list index out of range
我怀疑它没有移动到文本文件中的下一行数据,因此前一个字符串的 [1] 中没有任何内容。我会很感激我能得到的任何帮助。