>* Adam A. Zajac <[EMAIL PROTECTED]> [2007-06-27 11:26]: >> I was reading over the documentation for the tarfile module and it >> occurred to me that there didn't seem to be a way to remove an >> individual file from the tar. >> >> For example, suppose I did this: >> >> import tarfile >> tar = tarfile.open("sample.tar", "w") >> tar.add("unwanted") >> tar.add("wanted") >> tar.close() >> >> At this point, how could I come back and remove "unwanted" from the tar? > > Wel, it looks like tar's --remove-files is not supported yet, you would > probably have to reopen the tarfile, write it to a new one file-by-file, > excluding the ones you don't want. Messy :-(
Disclaimer: I was not alive during the described era. This information may be off or just plain wrong. Perhaps someone who was alive then will correct any errors(?). Remove is not supported because of the way tar s were designed. They were designed for tape drive backups, that is 'tar' Tape ARchive. Because they were designed as a backup scheme for tape drives, there was no need to have a remove function. | File1 | File2 | File3 | Remove File2 | File1 | | File3| Moving file3 up would mean that the tape would have to rock back and forth, something that tapes just weren't supposed to do. Not moving file3 up would very nearly defeat the purpose of deleting file2 in the first place: to save space. (Which was important then - and should be now... tsk, tsk Microsoft) Anyway, there was no need to have a remove function because people just did what Adam said - write a whole new tape. Now that tar is no longer widely used for tapes, there are other formats (like RAR) that *are* designed for modern storage equipment. HTH, Tiger12506 _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor