이 게시물이 길 경우 사과하지만되도록 자세하게 설명하려고합니다. 필자는 주제에 대해 상당한 양의 연구를 수행했으며 "중급"숙련 된 프로그래머라고 생각할 것입니다.파이썬 : 텍스트 파일에서 여러 줄의 서식을 다시 지정
내 문제 : 여러 줄의 데이터가있는 텍스트 파일이 있습니다. 관련없는 정보를 없애기 위해 각 줄의 특정 부분을 제거한 다음 새로 형식이 지정된 줄로 파일을 저장하고 싶습니다.
다음은 내가 성취하고자하는 목표의 예입니다. 내가 코드를 가지고 노력하고 텍스트 파일을 읽고, 출력하고
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]에 아무 것도 없습니다. 내가 얻을 수있는 도움을 주시면 감사하겠습니다.
각 줄에는 "확장"이라는 단어가 포함되어 있으며 텍스트 파일에는 빈 줄이 없습니다. 매우 일관된 형식을 취합니다. – user1650583
@ user1650583 방금 편집 한 print 문을 추가하고 오류의 원인이되는 행을 알려주십시오. –
줄 바꿈을위한 검색 기능을 통해 방금 파일을 찾았습니다. 이것은 문제를 해결했습니다 (그리고 저는 이것을 쓰면서 구두로 칭찬합니다). 나는 그것이 오류를 던질 것이라는 것을 몰랐지만, 어느 쪽이든, 내 문제를 해결했습니다. 이제는 내 밤을 계속할 수 있으므로 빠른 응답을 보내 주셔서 감사합니다. – user1650583