tarfile
을 사용하여 .tar 파일을 추가하려고하지만 파일이 사용 중인지 여부를 알 수 없습니다. 파일을 추가 할 수 있는지 확인하려면 어떻게합니까?tar 파일을 사용하여 tar 파일을 쓸 수 있는지 어떻게 확인할 수 있습니까?
try:
with tarfile.open("foo.tar", "a:") as tar:
tar.add("bar.txt")
except tarfile.TarError:
print "error"
을이 때때로 오류가 발생하지만 때로는 및 끝에 tar 파일은 내가 기대했던 모든 파일이없는하지 않습니다
나는 시도했습니다.
내 계획은 루프에 넣고 작동 할 때까지 계속 시도하는 것입니다.
다른 옵션을 사용하는 경우가 대부분이지만 다른 경우에는 tarfile
이 이런 일을 담당해야한다고 생각합니다. 새 파일을 검사하는 tarfile
에 대한 래퍼를 작성하여 tar.getmembers()
목록에 표시 할 수 있습니다.
일반적으로 파일이 사용 가능 * 가능한 *이면 어떤 파일에도 쓰지 않아야합니다. append-mode는 줄과 같은 버퍼가없는 로그와 같은 단순한 파일에서는 안전하지만, tar 파일은 마지막 몇 블록을 덮어 써야합니다. – o11c
@ o11c "tarfiles가 마지막 몇 블록을 덮어 씁니다"라는 것이 무슨 뜻인지 잘 모르겠습니다. –
.tar 파일은 (검색 불가능한) 512 바이트 레코드로 구성됩니다. 아카이브의 끝은 최소한 두 개의 연속 된 0으로 채워진 레코드로 표시됩니다. 추가하기 위해 제로화 된 레코드를 제거해야합니다. – o11c