Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 19, 2019 10:46:23

vitk
Зарегистрирован: 2019-08-30
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка по заданому имени

Друзья подскажите как можно сортировать список только определенные имена

Например у меня есть список

 list1 = ['patch0001.sql', 'padert0002.sql', 'patch0003.sql', 'patch0004.sql', 'fgrty4823.sql']

Как мне отсортировать список что б только вывести имена по заданному имени правилу patch(\d\d\d\d).sql ?
Тоесть только имена patch0001.sql patch0003.sql и т.д

Офлайн

#2 Ноя. 19, 2019 11:34:03

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Сортировка по заданому имени

 >>> list1 = ['patch0001.sql', 'padert0002.sql', 'patch0003.sql', 'patch0004.sql', 'fgrty4823.sql']
>>> for i in list1:
	if 'patch' in i:
		print(i)
		
patch0001.sql
patch0003.sql
patch0004.sql
>>>

Офлайн

#3 Ноя. 19, 2019 12:03:28

vitk
Зарегистрирован: 2019-08-30
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка по заданому имени

marvellik
Спасибо

Как задать что б сортировало только sql расширения файлы еще с именем patch?

Отредактировано vitk (Ноя. 19, 2019 12:04:13)

Офлайн

#4 Ноя. 19, 2019 15:03:42

vitk
Зарегистрирован: 2019-08-30
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка по заданому имени

regex = re.compile(r'patch(\d\d\d\d+)\.sql')
selected_files = list(filter(regex.search, file_list))
print(selected_files)

решил так
Вопрос закрыт

Офлайн

#5 Ноя. 20, 2019 07:34:32

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9726
Репутация: +  843  -
Профиль   Отправить e-mail  

Сортировка по заданому имени

vitk
Как мне отсортировать список что б только вывести имена по заданному имени правилу patch(\d\d\d\d).sql ?
Тоесть только имена patch0001.sql patch0003.sql и т.д

  
>>> import re
>>> 
>>> lst = ['patch0001.sql',
...        'padert0002.sql',
...        'patch0003.sql',
...        'patch0004.sql',
...        'fgrty4823.sql']
>>> 
>>> pat = r'^patch\d{4}\.sql$'
>>> out = list(filter(re.compile(pat).search, lst))
>>> out
['patch0001.sql', 'patch0003.sql', 'patch0004.sql']
>>>


vitk
решил так
  
regex = re.compile(r'patch(\d\d\d\d+)\.sql')
selected_files = list(filter(regex.search, file_list))
print(selected_files)
Вопрос закрыт
Он найдёт и textpatch0000.sqltext.txt



Отредактировано py.user.next (Ноя. 20, 2019 08:40:27)

Офлайн

#6 Ноя. 20, 2019 13:32:26

vitk
Зарегистрирован: 2019-08-30
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка по заданому имени

py.user.next
Да и txt так же этого не учел, Спасибо Большое

Отредактировано vitk (Ноя. 20, 2019 13:45:48)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version