PyLZMA

2012-05-22 26 views
8

का उपयोग करने का उदाहरण मैं संग्रह से फ़ाइल निकालने के लिए PyLZMA का उपयोग करना चाहता हूं (उदा। Test7z) और इसे उसी निर्देशिका में निकालें।PyLZMA

मैं पाइथन के लिए नौसिखिया हूं और मुझे पता नहीं है कि कैसे शुरू किया जाए। मैंने कुछ googling किया है और some examples और docs मिला, लेकिन मुझे नहीं पता कि वे कैसे काम करते हैं।

क्या कोई व्यक्ति जो मैं करना चाहता हूं उसके लिए मूल कोड पोस्ट कर सकता हूं ताकि मैं काम करना शुरू कर सकूं और समझ सकूं?

+3

क्या आपने जो कुछ किया है उसके कुछ उदाहरण दिखाए और यह कैसे असफल रहा? – Levon

+0

ऐसा लगता है कि इस लाइब्रेरी वास्तव में पूरी तरह से अनियंत्रित है, 'क्लास बेस (ऑब्जेक्ट): "" बेस ऑजेक्ट "के कुछ डॉकस्ट्रिंग को छोड़कर" "... –

+0

लोग यहां आमतौर पर" मुझे कोड दें "प्रश्नों पर फेंक देते हैं, कोशिश करें कुछ प्रयास दिखाने के लिए, हमें दिखाएं कि आपने क्या पाया, कोशिश की और आप क्या खो रहे हैं और आपको बेहतर समर्थन मिलेगा। – KurzedMetal

उत्तर

11

यहाँ एक अजगर वर्ग बुनियादी कार्यक्षमता को संभालने के लिए है। मैंने इसे अपने काम के लिए इस्तेमाल किया है:

import py7zlib 
class SevenZFile(object): 
    @classmethod 
    def is_7zfile(cls, filepath): 
     ''' 
     Class method: determine if file path points to a valid 7z archive. 
     ''' 
     is7z = False 
     fp = None 
     try: 
      fp = open(filepath, 'rb') 
      archive = py7zlib.Archive7z(fp) 
      n = len(archive.getnames()) 
      is7z = True 
     finally: 
      if fp: 
       fp.close() 
     return is7z 

    def __init__(self, filepath): 
     fp = open(filepath, 'rb') 
     self.archive = py7zlib.Archive7z(fp) 

    def extractall(self, path): 
     for name in self.archive.getnames(): 
      outfilename = os.path.join(path, name) 
      outdir = os.path.dirname(outfilename) 
      if not os.path.exists(outdir): 
       os.makedirs(outdir) 
      outfile = open(outfilename, 'wb') 
      outfile.write(self.archive.getmember(name).read()) 
      outfile.close() 
3

यहाँ दो कोड स्निपेट मैं यहां पाया http://www.linuxplanet.org/blogs/?cat=3845

# Compress the input file (as a stream) to a file (as a stream) 
i = open(source_file, 'rb') 
o = open(compressed_file, 'wb') 
i.seek(0) 
s = pylzma.compressfile(i) 
while True: 
    tmp = s.read(1) 
    if not tmp: break 
    o.write(tmp) 
o.close() 
i.close() 

# Decomrpess the file (as a stream) to a file (as a stream) 
i = open(compressed_file, 'rb') 
o = open(decompressed_file, 'wb') 
s = pylzma.decompressobj() 
while True: 
    tmp = i.read(1) 
    if not tmp: break 
    o.write(s.decompress(tmp)) 
o.close() 
i.close() 
+3

इसी तरह के स्निपेट पहले से ही github.com/fancycode/pylzma/blob/master/doc/usage.txt में हैं; भी, 's.flush()' को डिकंप्रेशन केस के लिए नोट किया जाना चाहिए। (फिर भी, किसी भी तरह, googling पहले यहां जाता है, हे) – HoverHell

+0

चूंकि ओपी एक संग्रह से फ़ाइल निकालना चाहता है, इसलिए मुझे नहीं लगता कि यह सवाल का जवाब देता है और यह आश्चर्यजनक लगता है कि इसे बिल्कुल वोट दिया गया था। – martineau

+1

util.txt -> उपयोग .md @ https://github.com/fancycode/pylzma/blob/master/doc/USAGE.md – philshem