Ho un archivio tar in cui ho una directory che ho bisogno di estrarre in una determinata directory. Per esempio: Ho una directoryEstrai tutti i file con percorso di directory nella directory data
TarPrefix/x/y/z
in un archivio tar voglio estrarlo in una data directory di destinazione, ad esempio: estratto/a/questa directory dovrebbe contenere tutti i file e le directory contenuti nella directory TarPrefix/x/y/z.
subdir_and_files = [ tarinfo for tarinfo in tar.getmembers()
if tarinfo.name.startswith("subfolder/")
]
per ottenere l'elenco di tutti i membri del percorso della directory "sottocartella /" e poi ho estrarre utilizzando tar.extractall(extracted/a,subdir_and_files)
ma estrae tutti i membri con il loro percorso di directory Per esempio, questo si traduce in estratta/a/x/y/z. Potresti aiutarmi ad estrarre questi file nella cartella indicata.
Non lo so, ma la questione sembra essere una sorta di l'opposto del tuo: http: //stackoverflow.com/questions/2239655/python-tarfile-adding-files-without-directory-hiearchy Forse puoi usare extract() piuttosto che extractall() e vedere cosa puoi realizzare, eventualmente modificando gli oggetti di TarInfo che ottenuto in subdir_and_files? –
Mi dispiace per la domanda di un principiante. Sono un principiante in Python e non ho trovato alcuna risposta su google, ecco perché mi sono posto una domanda del genere. Per aiutare gli altri, voglio rispondere a questa domanda. Hai solo bisogno di cambiare il valore dell'attributo tarinfo.name al valore corretto. cioè nel mio esempio dato 'tarinfo.name = tarinfo.name [len (Tarprefix/x/y/z):]' e quindi usa lo stesso codice funziona. – gaurav
Ho provato a rispondere alla mia domanda, ma non sono autorizzato fino a otto ore, quindi ho aspettato fino ad allora. – gaurav