2014-09-15 4 views
-2

여러 열이있는 파일을 읽고 원본 파일과 다른 순서로 열이있는 새 파일을 쓰고 싶습니다. 열 중 하나에는 새 파일에서도 제거 할 텍스트가 있습니다. 예를 들어배열로 파일을 읽은 다음 열을 다시 배열하십시오.

, 내가 파일을 읽을 경우 : data.txt로

1 6 omi=11 16 21 26 
2 7 omi=12 17 22 27 
3 8 omi=13 18 23 28 
4 9 omi=14 19 24 29 
5 10 omi=15 20 25 30 

가 나는 것으로 기록 된 파일을 싶습니다 dataNEW.txt

26 1 11 16 
27 2 12 17 
28 3 13 18 
29 4 14 19 
30 5 15 20 

을 inspectorG4dget의 도움으로, 내가왔다 다음과 같이 입력하십시오 :

각 라인을 나열하는 것보다 쉼표없이 출력을 얻는 더 간결한 방법이 있습니까? 0부터 총 줄 수까지의 인덱스?

+3

예 가능합니다. 먼저 무엇인가 시험해보고 붙어있을 때 알려주십시오. – CoryKramer

답변

0
import csv 

with open('path/to/input') as infile, open('path/to/output', 'w') as outfile: 
    writer = csv.writer(outfile) 
    for line in csv.reader(infile, delimiter='\t'): 
     newline = [line[i] for i in [-1, 0, 2 3]] 
     newline[2] = newline[2].split('=')[1] 
     writer.writerow(newline) 
+0

구문 오류가 계속 발생했기 때문에이 값을 조정했습니다. 그리고 -1은 파일에 아무런 출력도 발생시키지 않았지만 방금 5로 변경했습니다. CSV를 가져 오기 위해서는 CSV를 가져와야한다는 것을 알지 못했습니다.infile = open ('path/to/input') outfile = open ('path/to/output', 'w') 줄에 대한 csv.reader (infile, 구분 기호 = '\ t') 개행 [2] = 개행 [2] .split ('=') [1] writer.writerow (개행) 개행 = [5, 0, 2 (3)]에 [I]를위한 I 선] 출력에는 쉼표가 있습니다. 쉼표없이 탭 분리만으로 출력을 얻을 수있는 방법이 있습니까? – SZ23

관련 문제