2014-07-17 4 views
2

어떤 이유로 내 다음 코드의 readline() 함수가 아무 것도 인쇄하지 않는 것 같습니다.Python의 readline() 함수가 작동하지 않는 것처럼 보입니까?

fileName = input() 
    fileName += ".txt" 
    fileA = open(fileName, 'a+') 
    print("Opened", fileA.name) 

    line = fileA.readline() 
    print(line) 
    fileA.close() 

나는 PyCharm를 사용하고, 나는 내 유일한 PyCharm 프로젝트 폴더 안에 위치한 'file.txt를'을 액세스하려고 시도했습니다. 여기에는 다음 내용이 포함됩니다.

Opened file!! 

무엇이 잘못되었는지 전혀 알 수 없으며 문제에 대한 관련 정보를 찾을 수 없습니다. 어떤 도움을 주셔서 감사합니다.

답변

5

a+ 모드에서 파일을 연 파일 때문에 파일 포인터가 파일 끝에서 시작됩니다. 결국 텍스트를 추가 할 곳이 바로 여기에 있습니다.

fileA.seek(0) 
line = fileA.readline() 

이렇게하면 파일의 맨 위에 포인터를 설정 : 당신은 상단에서 읽고 싶은 경우 readline를 호출하기 직전에

, 당신은 fileA.seek(0)을 배치해야합니다.


참고 : 코멘트를 읽은 후, 당신이 Windows 시스템을 실행하는 경우에만이 작업을 수행 할 필요가 나타납니다. * nix 시스템을 사용하는 사람은이 문제가 없어야합니다.

+0

그런 일은 일어나지 않습니다. 나는 한 줄의 파일을 가지고 있고, 그 줄을 잘 출력한다. –

+0

readline 앞에'print fileA.tell()'을 넣는다. 파일은 pos 0에서 읽기 용으로 열리 며, 쓰기를하면 끝에 쓰게됩니다.'a +'는 쓰기 및 읽기 용 파일을 엽니 다. –

+0

유닉스 계열 시스템을 처음 시작할 필요는 없다고 생각합니다. Microsoft C 런타임은 "a +"를 사용할 때 기존 파일의 끝에서 CTRL-Z 문자를 제거하므로 아마도 파일 포인터를 파일 끝 부분에 남겨 두었을 것입니다. –

관련 문제