2013-11-03 2 views
0

이 질문에 대한 답은 코멘트에 있습니다. 학교에서 나는이 프로그램을 작성하여 사람이 LAN 파티에 가져올 정보를 묻습니다. 이것은 루프에서 발생하므로 참여자 수가 256에 도달 할 때까지 모든 참가자를 묻습니다. 일부 코드가 추가되어 일부 줄이 텍스트 파일에 기록됩니다. 제 모든 문제는 모든 참가자와 함께 루프가 처음부터 시작될 때마다 텍스트 파일이 대체된다는 것입니다. 나는 해결책을 찾을 곳을 찾을 수없는 것 같습니다. 다음은 내 코드에서 일부 라인이다 :바꾸지 않고 루프로 텍스트 파일에 쓰기

내가 프로그램을 닫을 때 이제 UID (사용자 ID)를 표시합니다 내 TEXTFILE이, 그 표시했다
uid=0 
while uid <= 256: 
    fo = open('userID.txt','w') 
    print("\nUserID: ",uid) 
    fo.write("\nUserID: " + str(uid)) 
fo.close() 
input("") 

. 그래서 하고 ... 대신 교체의 강화 말하자면 : 그래서 1 또는 5 (200)는,하지만 내가 원하는 것은 내가 프로그램을 닫을 때까지이 모든 것을 보여준다는 것이다.

텍스트 파일에 쓰는 일은 내가 재미있는 일이었습니다. 나는 이미 프로그램을 건네었지만 여전히 나의 문제를 해결하고 싶다. 나는 시작 프로그래머이다. 이것은 내가 가지고있는 프로그래밍의 첫 번째 블록이다.

+0

이 –

+0

들여 쓰기 바랍니다 :) 더 나은 이해를위한 코드를 identate하시기 바랍니다 파일에 버퍼링 된 데이터를 작성하는 fo.flush()을 사용할 수 있습니다! '% s/\ [tabbed \]//' – slackmart

+0

이 뜻 이니? – user2950983

답변

1

루프 내에서 파일을 다시 열지 마십시오. 'w'로 파일을 열 때마다 파일을 덮어 씁니다.

while 루프 밖에서 fo.close()를 사용하면 괜찮을 것입니다!

uid=0 
fo = open('userID.txt','w') 
while uid <= 256: 
    print("\nUserID: ",uid) 
    fo.write("\nUserID: " + str(uid)) 
    input("") 
fo.close() 

다른 답변에 제안 당신이 (당신은뿐만 아니라 쓰기로 읽을 필요가있는 경우 또는 'A +')을 'A'쓰기 모드를 사용하지만이 파일에 새로운 데이터를 추가된다는 점에 유의 할 수있는 모든 프로그램을 실행할 때마다 모든 프로그램 실행 결과가 하나씩 차례로 기록됩니다.

+0

사실, 루프에서 파일을 다시 열지 마십시오. 'w'가 파일을 자릅니다. –

+0

정확하게 맞음 – hammus

+0

아, 그래, 내 실수를 볼 수있어! 대답 해 주셔서 대단히 감사합니다. :) 이 방법을 시도했지만 루프가 끝나기 전에 파일을 닫았 기 때문에 파일이 비어 있습니다. (원래의 코드는 더 많은 인풋을 가지고 있고 테스팅 중에 루프를 끝내지 못했습니다.) 미완성 된 루프를 텍스트 파일로 저장하는 방법이 있다고 가정하지 않습니까? – user2950983