파일을 덮어 쓰지 않고 파일에 어떻게 추가합니까? 파일에 추가되는 특수 기능이 있습니까?
답변
with open("test.txt", "a") as myfile:
myfile.write("appended text")
답변
“a”또는 “ab”를 모드로 설정하여 추가 모드에서 파일을 열어야합니다. open ()을 참조하십시오 .
“a”모드로 열면 쓰기 위치는 항상 파일의 끝에 있습니다 (첨부 파일). “a +”로 열면 읽을 수 있고 뒤로 탐색하고 읽을 수 있습니다 (그러나 모든 쓰기는 여전히 파일 끝에 있습니다!).
예:
>>> with open('test1','wb') as f:
f.write('test')
>>> with open('test1','ab') as f:
f.write('koko')
>>> with open('test1','rb') as f:
f.read()
'testkoko'
참고 : ‘a’를 사용하는 것은 ‘w’로 열고 파일 끝을 찾는 것과 다릅니다. 다른 프로그램이 파일을 열고 찾기와 쓰기 사이에 쓰기를 시작하면 어떤 일이 발생할 수 있는지 고려하십시오. 일부 운영 체제에서 ‘a’를 사용하여 파일을 열면 다음 쓰기가 모두 파일 끝에 원자 적으로 추가됩니다 (파일이 다른 쓰기에 의해 증가하더라도).
“a”모드의 작동 방식에 대한 몇 가지 세부 사항 ( Linux에서만 테스트 됨 ). 다시 검색하더라도 모든 쓰기는 파일 끝에 추가됩니다.
>>> f = open('test','a+') # Not using 'with' just to simplify the example REPL session
>>> f.write('hi')
>>> f.seek(0)
>>> f.read()
'hi'
>>> f.seek(0)
>>> f.write('bye') # Will still append despite the seek(0)!
>>> f.seek(0)
>>> f.read()
'hibye'
실제로 fopen
맨 페이지 는 다음 과 같이 말합니다.
추가 모드 (파일의 첫 번째 문자)에서 파일을 열면이 스트림에 대한 모든 후속 쓰기 작업이 마치 호출 앞에 오는 것처럼 파일 끝에서 발생합니다.
fseek(stream, 0, SEEK_END);
이전 간단한 답변 (을 사용하지 않음 with
)
예 : ( 실제 프로그램 에서 파일을 닫는 데 사용with
– 설명서 참조 )
>>> open("test","wb").write("test")
>>> open("test","a+b").write("koko")
>>> open("test","rb").read()
'testkoko'
답변
난 항상 이렇게 해요
f = open('filename.txt', 'a')
f.write("stuff")
f.close()
간단하지만 매우 유용합니다.
답변
아마도 "a"
모드 인수 로 전달하고 싶을 것입니다 . open ()에 대한 문서를 참조하십시오 .
with open("foo", "a") as f:
f.write("cool beans...")
업데이트 (+), 절단 (w) 및 이진 (b) 모드에 대한 모드 인수의 다른 순열이 있지만 시작하는 "a"
것이 가장 좋습니다.
답변
파이썬은 주요 세 가지 모드 중에서 많은 변형이 있습니다.이 세 가지 모드는 다음과 같습니다.
'w' write text
'r' read text
'a' append text
따라서 파일에 추가하는 것은 다음과 같이 쉽습니다.
f = open('filename.txt', 'a')
f.write('whatever you want to write here (in append mode) here.')
그런 다음 코드를 더 적은 줄로 만드는 모드가 있습니다.
'r+' read + write text
'w+' read + write text
'a+' append + read text
마지막으로 이진 형식의 읽기 / 쓰기 모드가 있습니다.
'rb' read binary
'wb' write binary
'ab' append binary
'rb+' read + write binary
'wb+' read + write binary
'ab+' append + read binary
답변
이 행을 사용할 때 파일을 추가 open(filename, "a")
한다는 a
것을 나타내므로 기존 파일에 추가 데이터를 삽입 할 수 있습니다.
다음 줄을 사용하여 파일에 텍스트를 추가 할 수 있습니다
def FileSave(filename,content):
with open(filename, "a") as myfile:
myfile.write(content)
FileSave("test.txt","test1 \n")
FileSave("test.txt","test2 \n")
답변
print
대신 다음과 write
같이 할 수도 있습니다 .
with open('test.txt', 'a') as f:
print('appended text', file=f)
경우 TEST.TXT가 존재하지 않는, 그것은 생성됩니다 …