Форум сайта python.su
49
ajk
В найденном файле /usr/local/lib/python2.6/dist-packages/magic.py константа MIME_TYPE отсутствует. Кстати, есть ещё каталог /usr/local/lib/python3.1/dist-packages,
Офлайн
857
ajkНу, там в apt должен быть аналогичный просмотр содержимого пакета. Просто нужно просмотреть эти пути, чтобы убедиться, что ты смотришь именно тот файл.
У меня Убунта и установка модулей идет через apt-get install python-magic
но rpm есть и он говорит
ajkА что он делает в /usr/local ? Туда обычно ставятся пакеты, которых нет в репозитории.
В найденном файле /usr/local/lib/python2.6/dist-packages/magic.py
ajkВозможно, у тебя питон неправильно установлен.
При тупом же добавлении оной константы, скрипт на том же месте требует еще некий модуль
[guest@localhost ~]$ rpm -q python3
python3-3.3.2-9.fc20.i686
[guest@localhost ~]$
Отредактировано py.user.next (Янв. 27, 2015 07:21:57)
Офлайн
103
у вас должно быть
magic.MAGIC_MIME
magic.MIME_TYPE
Офлайн
0
Есть мнение (на форуме Убунту), что все дело в версии 2.6 против 2.7 у автора.
Чё делать?
Офлайн
49
ajk
Чё делать?
Офлайн
103
Alenне думаю что поможет, так как в python-magic нету MIME_TYPE
Сделать обновление системы.
# -*- coding: utf-8 -*- ''' ''' import sys, os, zipfile, hashlib, pprint import xml.parsers.expat, magic mime = magic.Magic(mime=True) tags = dict() files = 0 reload(sys) sys.setdefaultencoding('utf-8') def start_element(name, attrs): tags[name] = tags[name] + 1 if name in tags else 1 def parse_dir(fn): dirlist = os.listdir(fn) dirlist.sort() for i in dirlist: parse_file(os.path.join(fn, i)) def parse_file(fn): m = mime.from_file(fn) if (m == 'application/zip'): parse_zip(fn) elif (m == 'application/xml'): parse_fb2(fn) else: print >> sys.stderr, 'Unknown mime type (%s) of file %s' % (m, fn) def parse_zip(fn): print >> sys.stderr, 'Zip:', os.path.basename(fn) z = zipfile.ZipFile(fn, 'r') filelist = z.namelist() filelist.sort() for n in filelist: try: parse_fb2(z.open(n)) print >> sys.stderr, n except: print >> sys.stderr, 'X:', n def parse_fb2(fn): global files if isinstance(fn, str): fn = open(fn) parser = xml.parsers.expat.ParserCreate() parser.StartElementHandler = start_element parser.Parse(fn.read(), True) files += 1 def print_result(): out = open('result.txt', 'w') for k, v in tags.iteritems(): out.write(u'%s\t%d\n' % (k, v)) print 'Files:', files if (__name__ == '__main__'): if len(sys.argv) != 2: print >> sys.stderr, 'Usage: %s <xmlfile|zipfile|folder>' % sys.argv[0] sys.exit(1) src = sys.argv[1] if (os.path.isdir(src)): parse_dir(src) else: parse_file(src) print_result()
Офлайн
49
Офлайн
0
terabaytДругая ошибка:
не думаю что поможет, так как в python-magic нету MIME_TYPEа вот это может и работать
./thisfile2b.py: строка 3:
: команда не найдена
import: unable to grab mouse `': Ресурс временно недоступен @ xwindow.c/XSelectWindow/8993.
./thisfile2b.py: строка 6: ошибка синтаксиса около неожиданной лексемы `('
./thisfile2b.py: строка 6: `mime = magic.Magic(mime=True)'
mime = magic.Magic(mime=True)и как оригинал
tags = dict()
files = 0
reload(sys)
def start_element(name, attrs):
tags = tags + 1 if name in tags else 1
mime = magic.open(magic.MIME_TYPE)
Офлайн
0
AlenЭто - да… Тут нужно будет подумать…
Тогда может в этом всё и дело.
Отредактировано ajk (Янв. 28, 2015 07:01:54)
Офлайн