2014-12-03 3 views
0

파이썬 파일 io에서는 다음 줄에 쓰려고 할 때 그냥 작동하지 않는 것 때문에 그냥 좌절하게됩니다.Python File I/O : 줄에 텍스트가 있는지 확인하고 다음 줄로 이동

필자는 "\ n을"을 시도했지만 그것은 단지

fo = open("acckeys.txt","w+") 
fo.write(psw+"_"+usr+"\n") 

그래서 어떻게 텍스트가 이미 라인에 존재하는지 확인하고 기존 텍스트를 지우지 않고 다음 행으로 작성합니다 파일의 기존 텍스트를 지 웁니다 ?

+1

파일을 열 때 'w' 플래그를 사용하고 있습니다. 이렇게하면 원본 내용을 지우면서 원하는 내용을 파일에 씁니다. [chris가 지적한대로] (http://stackoverflow.com/a/27263024/198633)'a' 플래그를 사용하면 파일에 쓰는 모든 것을 파일에 추가합니다 ** ** 파일의 기존 내용 뒤에 ** – inspectorG4dget

+0

감사!! 나는 당신의 의견을 appriciate – MaoKnight

답변

0

append 플래그로 파일을 열면 다음 빈 줄에 쓰게됩니다.

fo = open("file.txt", "a") 

참고로 "a +"를 사용하여 읽을 수도 있습니다.

"a +": 읽기 및 쓰기 용으로 엽니 다. 파일이 없으면 작성됩니다. 스트림은 파일의 끝에 위치합니다. 그것은 읽기 모드에서 acckeys.txt 파일을 엽니 다

fo = open("acckeys.txt") 

문에 관하여

0

, 나는 그렇지 않으면 오류 메시지 "해당 파일이나와 IO 오류가 발생합니다,이 파일이 이미 존재하는 가정 디렉토리 : 'acckeys.txt' "

그리고이 줄은 현재 가리키는 포인터에서 파일에 쓸 것입니다. 파일 핸들의 seek()을 사용하여 현재 포인터를 찾을 수 있습니다 (이 경우 fo). 보통 현재 오프셋 포인터는 파일의 시작입니다.

fo.write(psw+"_"+usr+"\n") 

이제 귀하의 질문에 그래서 어떻게 텍스트가 이미 라인에 존재하는지 확인하고 기존 텍스트를 지우지 않고 다음 행으로 쓴다? 텍스트 파일의 존재 여부를 확인하기 위해

, 당신은

fileContent = fo.read() 

을 사용하여 파일을 읽은 다음 포함한 FileContent의 길이를 확인할 수 있습니다.

당신이 다음에 관계없이 파일 자체의 파일 내용 또는 비 존재의

fo = open("acckeys.txt" ,"a") 

같은 추가 모드에서 파일을 열 경우. 존재하지 않는 파일을 만들거나 마지막 줄에 오프셋 포인터를 설정합니다.

+0

당신의 대답에 감사드립니다! – MaoKnight

관련 문제