Найти специальные ссылки в файлах
1 RTD [2014-01-23 21:44:00]
У меня есть несколько txt файлов с большим количеством URL-адресов:
www.example.com/spare_parts/M2541.htm
www.example.com/spare_parts/M3511.htm
www.example.com/spare_parts/C6501.htm
www.example.com/spare_parts/M2800.htm
www.example.com/custom_parts/M1808.htm
www.example.com/custom_parts/R2202.htm
Мне нужен отсортированный список ссылок. Мне удалось загрузить мои txt файлы и читать строки в python, но я не могу их сортировать, потому что все примеры, которые я нашел, ищут слова, и в этом случае мне нужны ссылки для всех запасных частей, начиная с M. Can кто-нибудь Помогите мне?
for line in text:
if 'spare_parts' in line:
print texto2(line)
else:
print texto3(line)
python
2 ответа
1 Решение Ashoka Lella [2014-01-23 21:54:00]
parts=[]
FirstLetter='M'
fp=open('textfile.txt')
for line in fp:
if 'spare_parts' in line:
part =line.rstrip().split('/')[-1].strip('.htm')
if part.startswith(FirstLetter):
parts.append(part)
print sorted(parts)
output: ['M2541','M2800','M3511']
0 Kroltan [2014-01-23 21:57:00]
Если я правильно понял ваш вопрос, вы ищете фильтр:
urlList = [
"www.example.com/spare_parts/M2541.htm",
"www.example.com/spare_parts/M3511.htm",
"www.example.com/spare_parts/C6501.htm",
"www.example.com/spare_parts/M2800.htm",
"www.example.com/custom_parts/M1808.htm",
"www.example.com/custom_parts/R2202.htm"
]
sparePartsStartingWithMList = [line for line in urlList if ("/spare_parts/M" in line)]
Важной линией является последняя строка, это понимание списка, которое возвращает список, содержащий все строки, в которых есть "/spare_parts/M". Эквивалентным циклом будет следующее:
sparePartsStartingWithMList = []
for line in urlList:
if ("/spare_parts/M" in line:
sparePartsStartingWithMList.append(line)
Из-за характера ваших URL-адресов все запасные части находятся в каталоге /spare_parts
и все ваши запасные части имеют свои идентификаторы в качестве имени файла. Таким образом, вы можете просто найти соответствующую часть пути, то есть папку, за которой следует разделитель каталога (/
), а затем первая буква идентификатора детали.
Значение sparePartsStartingWithMList
:
sparePartsStartingWithMList = [
"www.example.com/spare_parts/M2541.htm",
"www.example.com/spare_parts/M3511.htm",
"www.example.com/spare_parts/M2800.htm"
]