Найти - Пользователи
Полная версия: Исключить из чтения архива определенное расширение
Начало » Python для новичков » Исключить из чтения архива определенное расширение
1
sanodin
Не пойму как сделать обратное этому
надо исключить чтение .exe файлов при чтении всего архива
# -*- coding: utf-8 -*-
import os
import UnRAR2
import fnmatch
file_ext = '*.rar'#расширение файлов для поиска
exe='*.exe'
for root, dirs, files in os.walk('f:/'):
    for name in files:
        
        if fnmatch.fnmatch(name, file_ext):
            print name
            pu=root+'\\'+name
            
            for fi in UnRAR2.RarFile(pu).read_files( condition= '*.txt'):
                for i in fi:
                    print str(i)
так читает только текстовые файлы, если так ‘*’ то все
sanodin
Не читаются офисные документы
Думаю, если не смогу читать документы офис.doc то просто читать только текстовые документы буду
pyuser
Может так получится:
# -*- coding: utf-8 -*-
import os
import fnmatch
import UnRAR2
rar_files = "*.rar"
exclude = "*.exe"
for path, dirs, files in os.walk(os.path.abspath(root)):
    for filename in fnmatch.filter(files, rar_files):
        rar = UnRAR2.RarFile(os.path.join(path, filename))
        noexe = [x.index for x in rar.infoiter() if not (x.isdir or fnmatch.fnmatch(x.filename, exclude))]
        for ri, content in rar.read_files(condition=noexe):
            print(content)
ЗЫ. Сам не проверял - не пользуюсь UnRAR2.
sanodin
pyuser
Да,спасибо,код рабочий
то что я и хотел, а то уже только текстовые ,думал, буду обрабатывать
sanodin
Всех с праздником!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB