2013-06-07 2 views
1

를 작동하지 않는 파일로 나는 단순히 라인 당 평균 각각 평균의 출력을 인쇄하기 위해 노력하고있어인쇄 파이썬 출력

outFile = open("svm_light/{0}/predictions-average.txt".format(hashtag), "a") 
with open('svm_light/{0}/predictions-{1}'.format(hashtag,segMent)) as f: 
    tot_sum = 0 
    for i,x in enumerate(f, 1): 
     val = float(x) 
     tot_sum += val    
     average = tot_sum/i 
     outFile.write(average) 

다음과 같은 기능을 가지고있다.

@ubuntu:~/Documents/tweets/svm_light$ python2.7 tweetAverage2.py 

    0.428908289104 
    0.326446277105 
    0.63672940322 
    0.600035561829 
    0.666699795857 

이가 깔끔하게 출력을 인쇄 다음

with open('svm_light/{0}/predictions-{1}'.format(hashtag,segMent)) as f: 
    tot_sum = 0 
    for i,x in enumerate(f, 1): 
     val = float(x) 
     tot_sum += val    
     average = tot_sum/i 
     print average 

인쇄 : 나는 단순히이 내 프로그램을 변경하는 경우 그러나

outFile.write(average)    
TypeError: expected a character buffer object 

... 다음 오류가 메신저 화면하지만, 나는 그것을 실제 출력에 게재되는 것처럼 한 줄에 평균 1 개 저장하고 싶습니다.
Im new to python, 우분투에서 2.7을 사용 중입니다. 빠른 응답

UPDATE

고맙습니다은 STR 기능을 도입했다. 그러나, 그것은 빈 파일을 인쇄, 내가 그 파일이 약간 내용을 가지고 볼 수 있습니다, 그리고 사라 졌어요. 대부분의 경우 전체 시간을 덮어 씁니다. 그래서이 인쇄 기능을 배치하면 안되지 만 어디에서?

+1

'outFile.write (STR (평균) + "\ n을") ' –

답변

3

파일에 쓰기 전에 average을 문자열로 변환해야하며 str() 또는 문자열 서식을 사용할 수 있습니다. file.write

outFile.write(str(average)) 

도움말 :

>>> print file.write.__doc__ 
write(str) -> None. Write string str to file. #expects a string 

Note that due to buffering, flush() or close() may be needed before 
the file on disk reflects the data written. 

업데이트 :

outFile_name = "svm_light/{0}/predictions-average.txt".format(hashtag) 
in_file_name = 'svm_light/{0}/predictions-{1}'.format(hashtag,segMent) 
with open(in_file_name) as f, open(outFile_name, 'w') as outFile: 
    tot_sum = 0 
    for i,x in enumerate(f, 1): 
     val = float(x) 
     tot_sum += val    
     average = tot_sum/i 
     outFile.write(average + '\n') # '\n' adds a new-line 
+0

고맙습니다! 편집을 참조하십시오. –

+0

@ RHK-S8은 루프의 같은 파일에 쓰는 경우 추가 모드 (''a'')에서'outFile'을 엽니 다. –

+0

내가 그랬지 만 (업데이트 참조) 빈 파일을 만듭니다. –