найти все совпадения файла list1 в файле list2, создать файлы и записать соответствующие выходные данные в них. питон - PullRequest
0 голосов
/ 03 января 2019

У меня есть два списка:

list1:

http://some.com
http://thing.com
http://whatever.org

list2:

http://www.totalywhatever.com/2018010110231/http://some.com
http://www.totalywhatever.com/2018012346789/http://some.com
http://www.totalywhatever.com/2018002378231/http://thing.com
http://www.totalywhatever.com/2018012346789/http://thing.com
http://www.totalywhatever.com/2018012110231/http://whatever.org
http://www.totalywhatever.com/2018012346789/http://whatever.org

Я хочу создать отдельный файл для каждой строки из list1 с удалениемнекоторые признаки.Например:

http://some.com, следует создать файл с именем ---> some.com http://thing.com -> thing.com и так далее ...

В эти файлы должны быть скопированы ссылки из «list2», содержащие соответствующую фразу (так что для «some.com» это будут первые две строки из «list2»), в

эквивалент linux:

grep some.com list2 > some.com  # Maan.. how complex operations on files can be ?? 

Конечно, это должно быть в цикле для всех предметов ...

Я придумал это.Он >> почти << работает, он создает правильные файлы, но ставит только одну ссылку на каждый файл вместо всех совпадений.Буду признателен за любую помощь ... </p>

with open('list1', 'r+') as out, open('list2') as list:
o = out.readlines()
l = list.readlines()
out.seek(0)
for o1 in o:
         for l1 in l:
                 if o1.find(l1) > 0:
                         with open(l1.replace('http://', "").replace('\\n', '').rstrip(), 'w') as plik:
                                plik.write(o1 + '\n')
                                plik.seek(0)
                                plik.close()

1 Ответ

0 голосов
/ 03 января 2019

Когда я читаю это, я вижу, что я должен был поставить «a» для добавления вместо «w», напишите в этой строке:

with open(l1.replace('http://', "").replace('\\n', '').rstrip(), 'w') as plik:

надеюсь, что это поможет кому-то!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...