2016-08-22 2 views
1

먼저 코드는 이름을 가져오고 w 권한을 가진 파일을 만듭니다 (r+도 테스트 됨). 파일에 다른 입력을 작성해야하지만 그렇게하지 않아야합니다. 나는 빈 파일을 얻는다.파이썬 스크립트는 파일을 만들지 만 아무 것도 쓰지 않습니다.

user_name_in =input("gets Input") 
fname = user_name_in 
f = input() 
ufile = open(fname,"w") 
while True: 
    f=input(answer) 
    ufile.write(f) 
+2

open (fname, 'w')을 사용하여 ufile : ufile.write (f)'를 사용해 보셨습니까? – Xevaquor

+3

'ufile.close()'를 추가하고 수정했는지 확인하십시오. –

+3

@Rawing 당신은 여전히 ​​파일을 flush해야 할 것입니다. 항상'with'를 사용하여 파일을 처리하십시오. –

답변

5

당신이 ufile 블록으로 개방 (FNAME)와 로 교체 할 수 있습니다 폐쇄되고 당신은 걱정할 필요가없는 복잡한 것들을 가지고 있습니다. 이제 코드에서, 당신은 자신을 반복합니다. 예를 들어, 처음 두 줄은 실제로 하나입니다. 이것은 조금 청소했을 때의 모습입니다. 다른 사람도 눈치 그리고, answer가 선언되지 않습니다

fname = input("gets Input") 
with open(fname, "w") as ufile: 
    f = input('write something') 
    ufile.write(f) 

, 아니 종료 조건이없는 및 입력 프롬프트 중 하나를 최고의 또는 완전히 결석하지 않습니다.

+0

Works, "함께"에 대해 전혀 몰랐습니다. 감사합니다. – GeekyMo

+0

응답은 다른 곳에서 선언됩니다. 프로그램의 문자열 관리 부분에서 외부 적으로 선언했습니다. – GeekyMo

1

이 코드는 나를 위해 작동 :

user_name_in =input("gets Input") 
fname = user_name_in 
f = input() 
ufile = open(fname,"w") 
while True: 
    f=input(answer) 
    ufile.write(f) 

몇 가지 고려 사항 : 내가 대답가 선언되는 경우 표시되지 않습니다, 어느 파이썬 인터프리터는 참조 : P, 어쩌면 당신은이 부분을 붙여 넣기하는 것을 잊었다 또는 실제로 이것은 오류였습니까?

왜 파일 이름을 변수에 할당 한 다음 다른 이름으로 다시 할당하는지 이해할 수 없습니다.

파일 쓰기를 어떻게 중지하나요? 내가 찾은 유일한 방법은 Ctrl-C로 이상적이지는 않다.

파일을 안심 내가 코멘트에 썼던 것처럼, 항상주의를 필요로 파일을 처리 할 수 ​​with 블록을 사용

+0

변수가 동일한 용도로 사용되고 최적화 된 최종 코드가 수정됩니다. 그 동안 루프가 깨질 수 있습니다. 방금 코드의 필요한 부분을 배치했습니다. – GeekyMo

관련 문제