2013-10-21 4 views
0

세 개의 열로 구성된 txt 파일이 있습니다. 첫 번째 열은 정수이고 두 번째 및 세 번째 열은 플로트입니다. 나는 각 플로트와 라인별로 분리하여 계산을하고 싶다. 내 의사 코드는 다음과 같습니다 : 또한txt 파일에서 float로 계산

def first_function(file): 
    pogt = 0. 
    f=open(file, 'r') 
    for line in f: 
     pogt += otherFunction(first float, second float) 
     f.close 

, 것 내 pogt는 txt 파일의 모든 라인의 내 otherFunction 계산의 합이 될 것입니다 보장 "F 라인을위한"?

+0

내 질문에 당신은 같이 더 많은 정보를 제공 할 필요가 내 다른 기능 – Tina

+1

에 첫 번째 플로트와 두 번째 플로트를 받으시는 방법 : 다음과 같이

이 파일은 공백으로 구분되어 가정하면, 당신은 get_numbers를 정의 할 수 있습니다 텍스트 정의 방법. 숫자는 공백으로 구분됩니까? 이렇게 :'18 3.14 2.17'? – justhalf

답변

0

올바르게 first floatsecond float에 대한 값을 얻을 수 있다고 가정하면, 당신의 코드는 with을 사용하여, 그것을 처리하는, 더 나은 dedent하는 f.close 라인 (들여 쓰기의 역)가 필요하거나 것이다, 수정에 가까운 닫기 (btw, f.close 대신 f.close())

file을 변수 이름으로 사용하지 마십시오. Python에서는 예약어입니다.

변수에 더 좋은 이름을 사용하십시오.

def get_numbers(line): 
    [the_integer, first_float, second_float] = line.strip().split() 
    return (first_float, second_float) 

def first_function(filename): 
    the_result = 0 
    with open(filename, 'r') as f: 
     for line in f: 
      (first_float, second_float) = get_numbers(line) 
      the_result += other_function(first_float, second_float) 
+0

'f.close'는 어쨌든 호출하지 않는 한 아무 것도하지 않는다는 것에 유의하십시오. – Eevee

+0

Yap,'with '를 사용하여 코드를 변경 했으므로 그 점을 포함하는 것을 잊었습니다. 고마워, Eevee! – justhalf

+0

NameError : 전역 이름 'get_numbers'가 정의되어 있지 않습니다. – Tina