Как найти тип пантомимы файла в Python?

Я полагаю из вашего примера статического массива, что вам нужен прямоугольный массив, а не зубчатый. Вы можете использовать следующее:

int *ary = new int[sizeX * sizeY];

Затем вы можете получить доступ к элементам как:

ary[y*sizeX + x]

Не забудьте использовать delete [] на ary.

177
задан Daren Thomas 8 September 2013 в 00:12
поделиться

5 ответов

Метод магии питона, предложенный toivotuo, устарел. Текущий ствол Python-magic находится на Github, и на основе имеющегося там файла readme поиск MIME-типа выполняется следующим образом.

# For MIME types
>>> import magic
>>> mime = magic.Magic(mime=True)
>>> mime.from_file("testdata/test.pdf")
'application/pdf'
>>>
199
ответ дан 23 November 2019 в 20:19
поделиться

Вы не заявили, какой веб-сервер Вы использовали, но Apache имеет миленький модуль, названный Волшебство Пантомимы , который это использует для определения типа файла, когда сказали, чтобы сделать так. Это читает часть содержания файла и попыток выяснить то, что вводит его, основан на найденных символах. И как Dave Webb Упомянул , Модуль MimeTypes в соответствии с Python будет работать, если расширение удобно.

, С другой стороны, если Вы сидите на поле UNIX, можно использовать sys.popen('file -i ' + fileName, mode='r') для захвата типа MIME. Windows должен иметь эквивалентную команду, но я не уверен относительно того, каково это.

6
ответ дан Community 23 November 2019 в 20:19
поделиться

mimetypes модуль в стандартной библиотеке решит/предположит тип MIME от расширения файла.

, Если пользователи загружают файлы, сообщение HTTP будет содержать тип MIME файла вместе с данными. Например, Django делает это доступными данными как атрибут объект UploadedFile.

81
ответ дан jfs 23 November 2019 в 20:19
поделиться

в python 2.6:

mime = subprocess.Popen("/usr/bin/file --mime PATH", shell=True, \
    stdout=subprocess.PIPE).communicate()[0]
9
ответ дан 23 November 2019 в 20:19
поделиться

Более надежный путь, чем использовать библиотеку Mimetypes, будет использовать пакет Python Magic.

import magic
m = magic.open(magic.MAGIC_MIME)
m.load()
m.file("/tmp/document.pdf")

Это будет эквивалентно использовать файл (1).

На Django можно также убедиться, что тип MIME соответствует, что uploadedfile.content_type.

44
ответ дан 23 November 2019 в 20:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: