2013-09-07 2 views
1

두 개의 열 (하나는 x 좌표, 다른 하나는 y 좌표) 사이의 공백을 제거하기 위해 Python으로 스크립트를 작성하려고합니다. 이런 끝에 쉼표 대신하여 열과 각 칼럼의 최대 값과 최소값을 표시 (x 및 y 좌표 각각에 대해 2의 값)Python 스크립트 : 탭 제거, 쉼표로 구분 된 최대/최소 목록

10000000 6000000 
20000000 6100000 
30000000 6200000 
40000000 6300000 
50000000 6400000 

처럼 나타날 :

10000000,6000000 
20000000,6100000 
30000000,6200000 
40000000,6300000 
50000000,6400000 

10000000 50000000 60000000 640000000 

나는 초보자이므로 어떤 도움을 주신 점이 있어도 대단히 감사하겠습니다. 많은 감사합니다!

+0

출력 파일에 최소 및 최대 좌표를 쓰고 싶습니까? 아니면 그냥 인쇄하고 싶습니까? 아니면 입력 열을 읽고 프로그램에서 정수로 값을 사용하는 것입니까? –

답변

1

당신은 출력의 csv 모듈을 사용할 수 있습니다; 단순히 입력 파일 위에 루프 열로 라인을 분할 str.split()을 사용

import csv 

minimum = [float('inf'), float('inf')] 
maximum = [float('-inf'), float('-inf')] 

with open(inputfilename, 'r') as infile: 
    with open(outputfilename, 'wb') as outfile: 
     writer = csv.writer(outfile) 
     for line in infile: 
      row = map(int, line.split()) 
      minimum = map(min, zip(minimum, row)) 
      maximum = map(max, zip(maximum, row)) 
      writer.writerow(row) 

x_extremes, y_extremes = zip(minimum, maximum) 
print ' '.join(map(str, x_extremes)), ' '.join(map(str, y_extremes)) 

float('inf')float('-inf') 스타터 값은 쉽게 나중에 최소 및 최대 좌표를 계산하도록 만든다.

마지막 줄은

+0

안녕 Martijn. 감사. 나는 내가 거의 거기에 있다고 생각한다 (나는 단지 float로 int를 변경했다. 나는 나의 예에서 내가 소수점 두자리를 실제로 사용하고 있다는 것을 잊었다.); 그러나 '_csv.reader'객체에 'writeewrow'속성이 없다는 오류가 표시됩니까? – GeoLuCa

+0

해당 예외를 자세히보고 내 게시 된 코드와 비교하십시오. :-) (당신은 거기에'e'가 없습니다). –

+0

오타가 생겨서 죄송합니다. 두 개의 터미널에서 작업 중이었고 붙여 넣기를 복사하지 않았습니다. 여기있다 : AttributeError : '_csv.reader'객체에 'writerow'속성이 없습니다. 그리고 이전 질문에 대한 답으로, 포맷 된 좌표 (즉 공백없이 쉼표로 구분 된 열)와 함께 출력 파일에 최소 최대 좌표를 쓰는 것뿐입니다. – GeoLuCa

0

이 작동합니다 :

li = [] 
for line in lines: 
    li.append(', '.join(line.split('\t'))) 

first_column = [int(x.split(',')[0]) for x in li] 
second_column = [int(x.split(' ')[1]) for x in li] 

for x in li: 
    print (x) 
print(min(first_column), max(first_column), min(second_column), max(second_column)) 
+0

너무 빨라서 Ankur에게 감사드립니다. 나는 그것을 밖으로 검사하고 당신에게 알릴 것이다. – GeoLuCa

관련 문제