Найти специальные ссылки в файлах

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"
]