zip dosyaları regex eşleşmesi için bir piton modülü var mı

oy
4

Ben 40 zip dosyası olarak sıkıştırılır milyonun üzerinde metin dosyaları var. Ayrıca telefonların yaklaşık 500 modeli adlarının bir listesi var. Belirli bir modeli metin dosyaları sözü edilen kaç kez öğrenmek istiyorum.

ayıklayacak dosyalar üstünde regex maç yapabileceği herhangi piton modülü var mı. Ayıklama olmadan bu sorunu çözmek için basit bir yolu var mı?

Oluştur 18/08/2008 saat 06:41
kaynak kullanıcı
Diğer dillerde...                            


4 cevaplar

oy
0

Yapabilirsin zip dosyalarıyla döngü, bir kerede tüm dosyaları açmak için ortadan kaldırarak, zipfile modülü kullanarak ve bunlar üstündeki regex çalışan dosyaları tek tek okuyarak.

Ben en azından anlamlı, sen sıkıştırılmış veriler üzerinde bir regex koşamam eminim.

Cevap 18/08/2008 saat 07:06
kaynak kullanıcı

oy
0

zipfile paket bu oldukça kolaylaştırır rağmen tek tek bir arşiv içindeki her dosya halletmek gibi, bunu halletmek gereken bir zip dosyasının içeriğini erişmek için.

Zip modülünün

Cevap 18/08/2008 saat 07:10
kaynak kullanıcı

oy
9

otomatik istediğinizi yapacak bir şey yok.

Ancak, yapmak için bu kolay hale getirecek bir piton zipfile modülü vardır. İşte dosyadaki hatları üzerinde yineleme yapmak nasıl.

#!/usr/bin/python

import zipfile
f = zipfile.ZipFile('myfile.zip')

for subfile in f.namelist():
    print subfile
    data = f.read(subfile)
    for line in data.split('\n'):
        print line
Cevap 18/08/2008 saat 07:19
kaynak kullanıcı

oy
0

(En azından teorik olarak) o ZIP Kullanıcı Huffman kodlama okumak ve sonra Huffman koduna Regexp'i çevirmek mümkün değil midir? bu ilk daha verimli olabilirdi de-sıkıştırarak sonra Regexp'i çalışan, veri?

(Not: Ben o kadar basit olmaz biliyorum: Ayrıca ZIP kodlama dosya düzeni diğer yönleriyle, blok yapıları, uğraşmak zorunda kalacak arka referanslar-ama kimse bu oldukça hafif olabilir hayal ediyor.)

DÜZENLEME: Ayrıca bu sadece kullanmak muhtemelen çok daha mantıklı olduğuna dikkat zipfileçözümü.

Cevap 03/09/2008 saat 13:42
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more