asdf
Март 8, 2012 21:15:05
Мне нужно получить имена видео файлов в текущем каталоге. Сделал вот так:
vid_name = glob.glob('*[.avi,.amv,.divx,.flc,.flv,.mkv,.mp2v,.mp4,.mp4v,.mpeg,.rmd,.swf,.vc1,.wm,.wmv,.xvid]')Вместе с именами видео файлов вывелись файлы с сабами *.ass. Как такое может быть?
Может есть какой-то более нормальный способ отличить сабы от видео чем такой вот перебор?
py.user.next
Март 9, 2012 08:08:55
квадратные скобки работают по-другому
JOHN_16
Март 9, 2012 08:21:46
В вашем случае вероятно нужно сперва получить весь список файлов,а потом регулярными выражениями отсортировать нужное.
asdf
Март 10, 2012 19:26:42
JOHN_16
Так и сделал, получил список всех имен os.listdir('.'). Затем использовал in чтобы узнать расширение.
Всем спасибо.
JOHN_16
Март 10, 2012 23:51:36
asdfпредостерегаю вас от ошибки, если вы делаете что то типа:
if '.avi' in 'some_film.avi'
то все хорошо, но а если получится так:
if '.avi' in 'some_file.avi.zip'
во первых это не видео файл
во вторых не факт что если это архив то внутри него видео файл. Это всего лишь имя файла, оно может никак не отображать содержание файла.
py.user.next
Март 11, 2012 02:25:29
>>> 'some_file.avi'.endswith(('.avi', '.amv', '.divx'))
True
>>> 'some_file.mp3'.endswith(('.avi', '.amv', '.divx'))
False
>>> import os.path
>>> os.path.splitext('some_file.avi')
('some_file', '.avi')
>>> os.path.splitext('some_file.avi.zip')
('some_file.avi', '.zip')
>>>
JOHN_16
Март 11, 2012 09:42:40
py.user.next
Ну что вы так сразу?:) человек может подумать хотел, справку почитать, а вы ему шансов не оставили:)
py.user.next
Март 12, 2012 23:46:14
так на чтение уйдёт не меньше месяца
JOHN_16
Март 13, 2012 03:11:21
думаю не повредит, умнее будет.
Я исхожу из позиции что если человек сам ищет информацию и разбирается, то это разрабатывает в нем навыки и определенное смышление. Говорю по своему опыту, во времена студенческие писал на Делфи, и многие проблемы решались банальным копипастом готовых решений, без вникания в суть проблемы. Более того я даже справкой пользоваться толком не умел, все черпалось из интернет ресурсов в стиле “нужно это - вот кусок какого то кода для этого. Это очень плохой показатель.”
py.user.next
Март 13, 2012 07:50:30
в справке можно увязнуть, то есть начинаешь искать одно, а оно тянет за собой другое
в справке он не найдёт общепринятые алгоритмы, там только описание элементов и примеры их использования
больше подойдёт какая-нибудь книга, но книги у него нет
пока он будет узнавать из справки, что существует модуль os.path, который специально для чего-то предназначен, в котором ещё дофига всего, пройдёт много времени
а если он напишет скрипт, который будет делать полезное дело, у него возникнет сильная мотивация продолжить создание своих программ, которая и поможет читать справку месяцами