2010-07-23 3 views
0

내 프로그램은 엄청난 수의 기호, 숫자를 포함하는 매우 큰 결과를 제공합니다. 따라서 GUI는 종종 '응답 없음'이됩니다. 결과를 표시하는 데 너무 많은 시간이 걸립니다. 결과가 표시되지 않고 .txt 파일로 저장되는 방법은 없습니다. GUI에서?파이썬에서 GUI로 표시하지 않고 결과를 .txt 파일로 직접 저장할 수 있습니까?

+1

당신이 명령 행 도구로이있는 경우, 당신은 또한 출력을 파일로 리디렉션 할 수 있습니다. – AlG

답변

3

조금 불특정 인 것에 대해 유감스럽게 생각하지만, 그것이 귀하의 질문에서 나옵니다.

# results will contain your large dataset ... 
handle = open("filename.txt", "w") 
handle.write(results) 
handle.close() 

또는 :

with open("filename.txt", "w") as f: 
    f.write(results) 

경우는 결과는 반복자 될 일이 :

# results will contain your large dataset ... 
handle = open("filename.txt", "w") 
handle.write(''.join(results)) # a little ugly, though 
handle.close() 

또는 :

with open("filename.txt", "w") as f: 
    for item in results: 
     f.write(item) 
+0

그러나 결과가리스트 형식 일 때 이것은 작동하지 않습니다 – user394706

+0

파이썬 파일을 편집 할 위치를 아는 경우 배열을 문자열로 변환하는 방법도 알 것입니다. 어쨌든,'결과 '가 목록이 될 가능성을 반영하여 내 항목을 편집했습니다. – miku

1

예.

with open("filename.txt", "w") as f: 
    for result_datum in get_my_results(): 
     f.write(result_datum) 

아니면 어떤 이유로 print를 사용해야하는 경우 :

f = open("filename.txt", "w") 
_saved_stdout = sys.stdout 
try: 
    sys.stdout = f 
    doMyCalculation() 
finally: 
    sys.stdout = _saved_stdout 
    f.close() 
관련 문제