파일 ProgramInput.txt는이이 내용아래에 설명 된 것처럼 특정 방식으로 파이썬에서 파일을 반복하는 방법.
<start>
content
...
...
...
<stop>
<start>
content
...
...
<stop>
과 같은 그래서 각각의 컨텐츠를 가지고 가고에 저장할 수 있도록 내가는 txt 파일을 반복하려면 어떻게
에 각 반복마다 다른 파일이 있습니까?
파일 ProgramInput.txt는이이 내용아래에 설명 된 것처럼 특정 방식으로 파이썬에서 파일을 반복하는 방법.
<start>
content
...
...
...
<stop>
<start>
content
...
...
<stop>
과 같은 그래서 각각의 컨텐츠를 가지고 가고에 저장할 수 있도록 내가는 txt 파일을 반복하려면 어떻게
에 각 반복마다 다른 파일이 있습니까?
가장 쉬운 방법은, 나는 기본적으로
contents = []
with open('file') as f:
for line in f:
if line.startswith('<start>'):
pass
contents.append(line)
contents = "".join(contents)
sections = contents.split("<stop>")
이다의 생각 목록의 패턴 행동과 저장소의 사용을 확인한 다음 섹션을 얻기 위해 다시 패턴을 사용할 수 있습니다.
정규 표현식을 사용하여 구분 기호 사이에서 텍스트를 추출하십시오.
다음은 입력 파일에 대한 몇 가지 무료 온 전성 검사가 포함 된 솔루션입니다.
with open('ProgramInput.txt') as f:
program_input = f.readlines()
start_lines = [line_number for line_number,line in enumerate(program_input) if line.startswith('<start>')]
stop_lines = [line_number for line_number,line in enumerate(program_input) if line.startswith('<stop>')]
if len(start_lines) != len(stop_lines):
raise Exception('corrupt input file')
for m,n in zip(stop_lines, start_lines):
if m - n <= 0:
raise Exception('corrupt input file')
with open('ProgramOutput_lines_{0}-{1}.txt'.format(n+2,m), 'w') as f:
f.writelines(program_input[n+1:m])
이 나에게 ProgramOutput_lines_2-5.txt
를 가져옵니다
content
...
...
...
및 ProgramOutput_lines_9-11.txt
: 물론
content
...
...
을, 당신은 당신이 무엇을 선택하여 출력 파일 이름을 지정할 수 있습니다.