2015-09-26 23 views
5

7z içeriğini nasıl okuyabilir ve kaydedebilirim? Ben ayıklamak veya böyle Arşiv, ama ben ancak o zaman dışarı bombardımanı ve dosyaları ayıklamak olacak 7z çağırarak ve CMDpython kullanarak 7z dosyasının içeriği nasıl okunur?

import subprocess 
import os 

source = 'filename.7z' 
directory = 'C:\Directory' 
pw = '123456' 
subprocess.call(r'"C:\Program Files (x86)\7-Zip\7z.exe" x '+source +' -o'+directory+' -p'+pw) 
+0

olası kopyası [Python - zip yerine 7zip ile sıkıştırmak, kod değiştirmek] (http://stackoverflow.com/questions/11466572/python-how-to-compress-with-7zip-instead-of- zip-code-change) –

cevap

2

dosyanın içeriğini listeleme python içeriğini okuyamaz, Python 2.7.9 kullanmak Bu dosyalara standart Dosya Erişimi çağrılarını kullanarak erişebilirsiniz (Python'u bilmiyorum - ancak dosyalara erişebilmeli!).

Doğrudan bir Python içinde 7z arşivine bakmak istiyorsanız, bir kütüphane kullanmanız gerekecektir. İşte bir tane: https://pypi.python.org/pypi/libarchive - Ben söylediğim gibi bunun için kefil olamaz - Ben bir Python kullanıcısı değilim - ama bir üçüncü parti kütüphanesi kullanmak genellikle tüm dillerde oldukça kolaydır.

Genellikle 7z Desteği sınırlı görünüyor. Alternatif biçimleri (zip/gzip) kullanabiliyorsanız, Python kitaplıklarının (ve örnek kodun) aralığının daha kapsamlı olduğunu düşünürsünüz.

Bu yardımcı olur umarım.

+0

Teşekkür ederim, libarchive kullanıyorum –

7

libarchive veya pylzma'u kullanabilirsiniz. Python3.3 + 'a yükseltebilirsiniz, standart kütüphanede bulunan lzma'u kullanabilirsiniz.

+2

Ben alway kullanımı python 2.7.9, 3.3 + standart kitaplık 7z için bilmiyorum, bu yüzden çok teşekkürler –

+15

Not lzma işe yaramazsa 7z * arşiv * ile, sadece tek dosya. – bfontaine

+0

Bu yüzden lzma doğru kütüphane değil ve bunu yapmak için zaman harcadım. Downvote. – shinzou

İlgili konular