Belirli bir dizinde ayıklamam gereken bir dizinin bulunduğu bir tar arşivim var. Örnek: ekstre/a /, bu dizin: I, örneğin belirli bir hedef dizine çıkarmak istediğiniz bir tar bir dizinBelirtilen dizinde dizin yolu ile tüm dosyaları ayıkla
TarPrefix/x/y/z
sahip TarPrefix/x/y/z dizininde bulunan tüm dosya ve dizinleri içermelidir.
subdir_and_files = [ tarinfo for tarinfo in tar.getmembers()
if tarinfo.name.startswith("subfolder/")
]
"/ alt klasör" dizindeki bütün üyelerin listesini almak için ve sonra ben onu
tar.extractall(extracted/a,subdir_and_files)
kullanarak ayıklamak ama Örneğin kendi dizin yolu ile tüm üyelerini ayıklar bu sonuçları çıkarılan/a/x/y/z. Bu dosyaları belirtilen klasörde ayıklamada bana yardımcı olabilir misiniz? Zaten bir cevap bulmuş olabilir gibi
Bilmiyorum, ama bu soru çeşit senin karşısındaki gibi görünüyor: http: //stackoverflow.com/questions/2239655/python-tarfile-adding-files-without-directory-hiearchy Belki de extractall() yerine extract() kullanabilir ve muhtemelen ne yaptığınızı görebilir, muhtemelen TarInfo nesnelerini değiştirerek subdir_and_files içinde var mı? –
Yeni başlayanların sorusu için üzgünüz. Python'da yeni başlayan biriyim ve google'da herhangi bir cevap bulamadı, bu yüzden böyle bir soru soruldu. Başkalarına yardım etmek için bu soruya cevap vermek istiyorum. Sadece tarinfo.name özellik değerini doğru değere değiştirmeniz gerekir. yani verdiğim örnekte tarinfo.name = tarinfo.name [len (Tarprefix/x/y/z):] 've daha sonra aynı kodu kullanmaktadır. – gaurav
Kendi sorumu cevaplamaya çalıştım ama sekiz saate kadar beklemedim, o zamana kadar bekledi. – gaurav