2010-07-15 7 views
1
myfile = open('out.txt', 'a') 
myfile.write(caption) 

내 스크립트가 실행될 때마다 다음과 같이 작성합니다. 그러나 첫 번째 실행 후에는 파일에 동일한 데이터를 계속 추가합니다. 비어 있는지 확인하려면 어떻게해야합니까 비어있는 경우에만 쓸 수 있습니까? 먼저 파일의 기존 데이터를 지우고 파일이 비어 있는지 여부를 귀하의 출력을 작성하거나하지하려면
파일이 비어 있는지 어떻게 확인할 수 있습니까? 글을 쓰기 전에 비워 둬야합니까?

 
import os 
b = os.path.getsize("path_to_file") 

답변

9

은, 그건 :

5

당신은과 대상 파일의 파일 크기를 확인할 수 있습니다 쉬운 : 그냥 "쓰기", 'a'는 "추가"를 의미

open('out.txt', 'w') 

'w' 수단을 사용합니다.

파일에 데이터가 있는지 확인하고 데이터가 있으면 아무 것도 쓰지 않으려면 Hypnos의 대답이 적합 할 것입니다. 파일이 비어 있지 않으면 파일 크기를 확인하고 파일 쓰기 코드를 건너 뜁니다.

+0

이는 경쟁 조건을 유발합니다. – Philipp

3

file.read([size])을 사용하면 처음으로 None을 반환하는 파일이 비어 있는지 확인할 수 있습니다.

python doc주세요.

0
  1. 파일을 엽니 다
  2. 확인 크기 전에 파일을 열어 크기가> 0

어떤 경쟁 조건을 피하기 선택된 경우 크기

  • 쓰기.

    import os 
    
    with open('out.txt', 'a') as myfile: 
        if os.path.getsize(myfile) == 0: 
         myfile.write(caption) 
    
  • 관련 문제