
[Anonymous]
08.05.2016
23:32:38
Не понял. У меня есть строка
pic.jpg
я сравниваю её с
.*\.jpg
Почему не сработает?

[Anonymous]
08.05.2016
23:35:08
Потому что "pic.jpg" != ".*\.jpg".

[Anonymous]
08.05.2016
23:35:54
Строки не сравниваются чтоли?

Mikhail
08.05.2016
23:36:14
строки какраз и сравниваются

Google

Mikhail
08.05.2016
23:38:38
тебе же написали, надо ``` import re; re.match(r“.*\.jpg”, “pic.jpg”) ```
блин не экранируется нормально кодом строка

[Anonymous]
08.05.2016
23:39:52
Я понял, что так. Я не понял своей ошибки.

Aragaer
08.05.2016
23:40:43
== и != это сравнение. Когда речь идет о регекспах, то используется термин "сопоставление"

[Anonymous]
08.05.2016
23:40:49
Твоя ошибка в том, что ты не видишь разницы между строкой и выражением.

Aragaer
08.05.2016
23:41:06
для сопоставления строки с регекспом используется функция match из пакета re
строка не равна регекспу, но она ему может соответствовать. В этом случае re.match вернет истину

Mikhail
08.05.2016
23:42:37
ну не истину а объект матча

[Anonymous]
08.05.2016
23:42:38
Вот теперь понял, спасибо.

Mikhail
08.05.2016
23:43:20
в котором уже будут группы матчей

Aragaer
08.05.2016
23:43:26
да, в питоне с объектами
... в перле оно все значительно плотнее интегрировано

[Anonymous]
08.05.2016
23:43:58

Google

Mikhail
08.05.2016
23:44:22
а у меня почему-то нет

Aragaer
08.05.2016
23:45:10
если просто скопипастить, то да 8)
ибо кавычки

[Anonymous]
08.05.2016
23:45:36
пробел потерял кажется

Mikhail
08.05.2016
23:45:36
ну я ж написал что не получается обернуть( хз почему

Aragaer
08.05.2016
23:45:46
нет
телеграм поменял кавычки на красивые
завернутые в разные стороны

[Anonymous]
08.05.2016
23:46:23
?

Aragaer
08.05.2016
23:46:55
import re; re.match(r".*\.jpg", "pic.jpg")
вот, надо в несколько строк

[Anonymous]
08.05.2016
23:47:33
И что мне теперь с этим делать? Он мне строчку целую возвращает, а мне True нужно)

Aragaer
08.05.2016
23:48:23
если нет соответствия, вернет None
если есть, вернет объект
так что if match is not None
но ваще для такого конкретного случая регекспы не нужны, в питоне есть endswith

Artem
08.05.2016
23:56:13

Aragaer
09.05.2016
00:07:30
еще и концовка в тему

[Anonymous]
09.05.2016
00:15:11
Кто-нибудь пнёт меня за код?

finkel
09.05.2016
00:18:11

Google

Ivan
09.05.2016
00:18:55
if 'jpg' == i[-3:]
я бы так делал)

[Anonymous]
09.05.2016
00:19:15
Ты жёсткий.
Очень.

Aragaer
09.05.2016
00:19:18

[Anonymous]
09.05.2016
00:19:31
Я только первый раз за питон сел

Sergey
09.05.2016
00:19:36
а что не так с i.endswith(".jpg") ?

Alex
09.05.2016
00:19:38

Mikhail
09.05.2016
00:19:38
VID_FILE = [] зачем след строчкой брать его длинну
14 строчка всегда 0

Alex
09.05.2016
00:19:56
впрочем, мб в корпусе 15 был бы няшкой

finkel
09.05.2016
00:20:06

[Anonymous]
09.05.2016
00:20:12

Mikhail
09.05.2016
00:20:19
я понимаю
но 14 строка всегда 0

[Anonymous]
09.05.2016
00:20:53
если лист будет наполнятся, то не изменится?
В конец перенесу

Mikhail
09.05.2016
00:21:05
а с чего бы ей изменяться
это не С++ тут нет указателей на функцию
если лямбдой сделаешь то будет примерно что ты хочешь

Google

Aragaer
09.05.2016
00:21:41
ващет есть
TOR_N = TOR_FILES.__length__

Mikhail
09.05.2016
00:22:15
нууу это объекты

Aragaer
09.05.2016
00:22:17
TOR_N()

Mikhail
09.05.2016
00:22:30
а не указатели в явном виде
тоесть поведение указателя отличается, если сделать же a = files.__length__ ; b= files.__length__ , после чего модифицировать а, b то не изменится

Aragaer
09.05.2016
00:23:46
ну в смысле любой callable является объектом

Admin
ERROR: S client not available

Mikhail
09.05.2016
00:23:50
ну да

Aragaer
09.05.2016
00:24:04
__length__ это метод, а не поле

Mikhail
09.05.2016
00:24:28
я понимаю

Aragaer
09.05.2016
00:24:49
callable является объектом, и бывают bound methods, которые "методы в привязке к объекту"

[Anonymous]
09.05.2016
00:25:09
Давайте я позже ооп выучу

Aragaer
09.05.2016
00:25:17
но нет частичного вычисления как в языке-который-нельзя-называть

Mikhail
09.05.2016
00:25:49
зачем тебе регулярки

Aragaer
09.05.2016
00:26:06
return re.match is not None
но я третий раз скажу - endswith

[Anonymous]
09.05.2016
00:26:37
Он у меня не заработал в ide

Mikhail
09.05.2016
00:26:38
if i.endswith(‘jpg’) or i.endswith(‘png’)

[Anonymous]
09.05.2016
00:26:48
А значит я не понял как его использовать

Google

Mikhail
09.05.2016
00:26:48
ну погугли чтоб заработал камон

Aragaer
09.05.2016
00:27:01
.jpg да

Sergey
09.05.2016
00:27:55
еще .tolower() чтоб работало с .JPG .PNG

Aragaer
09.05.2016
00:28:03
endswith это метод у объекта класса "строка", который принимает аргументом вторую строку (суффикс) и возвращает истину, если данная строка на нее заканчивается и ложь в противном случае

Mikhail
09.05.2016
00:28:21
да про tolower это хорошо

Aragaer
09.05.2016
00:28:27
а еще лучше list comprehension же 8)

Mikhail
09.05.2016
00:28:53
неее
endswith потом можно в map обернуть если будет много раширени

Sergey
09.05.2016
00:29:24
PIC_FILE = [x for x in WORK_FILES if x.tolower().endswith(".jpg") or x.tolower().endswith(".png")]

Mikhail
09.05.2016
00:29:29
добавить там jpeg , jpg200 и тд

Aragaer
09.05.2016
00:29:37
и густо обмазать лямбдами

Mikhail
09.05.2016
00:30:01
именно

Aragaer
09.05.2016
00:30:43
ох
if i.endswith(f):
return Trueпросто return f.endswith(i)
и ваще, ты f передаешь в функцию, а i почему-то нет
и кавычки
функции это не макросы

Mikhail
09.05.2016
00:32:09
any(map(lambda x: f.endswith(x), x))