2014-06-09 2 views
2

txt 파일의 각 행을 읽고 다른 행의 각 행을 인쇄하려고합니다.for 루프의 출력을 여러 파일에 작성하십시오.

How are you? I am good. 

filename2.txt이 가지고 : 등등

Wow, that's great. 

와 나는 다음과 같은 내용을 가지고 filename1.txt을 원하는 지금

How are you? I am good. 
Wow, that's great. 
This is a text file. 
...... 

: 가정,이 같은 텍스트 파일을 .

내 코드는 다음과 같습니다

#! /usr/bin/Python 

for i in range(1,4): // this range should increase with number of lines 
    with open('testdata.txt', 'r') as input: 
     with open('filename%i.txt' %i, 'w') as output: 
      for line in input: 
      output.write(line) 

내가 모든 파일은 파일의 모든 라인을 겪고있다 얻고있다. 위에서 설명한대로 각 파일에 단 한 줄만 넣기를 원합니다.

답변

7
루프 대신 라인의 수를 계산 루프 외부를 사용하는 값과 인덱스 반환 enumerate 기능을 사용하여 내부의 2 with 문을 이동

: 또한

with open('testdata.txt', 'r') as input: 
    for index, line in enumerate(input): 
     with open('filename{}.txt'.format(index), 'w') as output: 
      output.write(line) 

을의 일반적으로 format을 사용하면 % 문자열 서식 지정 구문보다 선호됩니다.

1

Here is a great answer, for how to get a counter from a line reader. 일반적으로 파일을 만드는 외부 루프와 파일을 만드는 외부 루프 대신 외부 루프를 읽는 루프가 필요합니다.

아래의 솔루션.

#! /usr/bin/Python 

with open('testdata.txt', 'r') as input: 
    for (counter,line) in enumerate(input): 
     with open('filename{0}.txt'.format(counter), 'w') as output: 
      output.write(line) 
관련 문제