2013-04-15 6 views
-1

내 텍스트 파일은 이것이다 : 당신이 볼 수 있듯이파이썬에서 텍스트 파일의 특정 줄을 어떻게 사용합니까?

467 119 635 231 234 858 
786 463 715 745 729 574 856 806 339 106 487 
798 791 392 916 177 115 948 871 525 

, 다른 수의 값을 갖는 세 개의 라인이 있습니다. 나의 임무는 그들을 분류하는 것이지만, 그들이있는 선만을 정렬하는 것입니다. 기본적으로 첫 번째 줄을 가장 작은 줄부터 가장 큰 줄까지 정렬 한 다음 두 번째 줄을 가장 작은 줄부터 가장 큰 줄까지 정렬하고 세 번째 줄에서 정렬해야합니다.

프로그램은이 .txt 파일의 값을 사용해야한다고 지정합니다. 그래서 내가하고 싶은 일은 한 번에 한 줄씩 하나씩 살펴보고 그 줄을 다루고, 코드와 함께 정렬하고 다시 꺼내는 것입니다.

내 질문은 : 한 번에 한 줄씩 파이썬 어떻게 보이게합니까?

f = open("numbers.txt", "r") 
f.readline() 

하지만 내가 특별히 단지 각 행을 반환 뭔가를 찾고 있어요, 그 방법은 그 특정 라인 내 정렬 코드로 작업 할 수 있습니다

은이 코드는 첫 줄을 읽 것을 알고있다.

설명 : 정렬에 대한 도움이 필요하지 않습니다. 한 번에 한 줄씩 보는 방법을 알아 내려고합니다. 당신은 지금 당신은 각각 별도의 라인 nums[0], nums[1]처럼 액세스 할 수 있습니다 모두 한 번

nums = [map(int, line.split()) for line in f] 

로드하려면

답변

1
for line in f: 
    nums = map(int, line.split()) 
    # looks at one line at a time, you can sort it now 

.

+0

예 나는 그 내용을 망칠 수 있도록 변수에 해당 줄을 설정해야한다고 말했습니다. for 루프는 모든 3 줄이 게시 될 때까지 텍스트의 3 회 반복을 수행합니다. – YourbrainonCompSci

+0

@Wes 정수 목록으로 변환하는 코드를 추가했습니다. – jamylak

+0

괜찮지 만 nums [0]을 인쇄한다고 해봅시다. 이것은 각 행의 첫 x 째 번호를 인쇄합니다. nums [0] (또는 다른 변수)가 첫 번째 행을 가져오고 nums [1] (또는 다른 것도 포함)가 두 번째 행을 가져 오는 지점에 도달하려고합니다. 어쩌면 선을 부르는 올바른 방법이 보이지 않을 수도 있습니다. – YourbrainonCompSci

0

원하는 기능을 수행하는 기능입니다. 파일의 경로를 지정하면 나머지는 수행합니다.

참고 : 생성기입니다.

def read_sort(file_path): 
    with open(file_path) as f: 
     for line in f: 
      yield sorted(map(int, line.split())) 


print list(read_sort(__path_to_file__) 
+0

'int's로 변환하는 것을 잊었습니다. '10'은 '2'보다 작습니다. 예를 들어 – jamylak

+0

저는이 특정 문제를 파악하고 싶었습니다. 실제와 같이 할당 (정렬)은 제가 말한 것보다 훨씬 복잡합니다. 기수 정렬 및 기타 등등이 포함됩니다. – YourbrainonCompSci

관련 문제