Как поместить файл .txt в более чем один список в Python - PullRequest
0 голосов
/ 09 октября 2018

Я пытаюсь поместить мой file.txt в список, а затем каждый индекс в разные списки, в то время как все списки остаются в исходном списке.До сих пор я мог добавить его в один список.

Вот мой код:

with open("evenements.txt", "r", encoding="utf-8-sig") as evenement:
    liste_evenement = evenement.readlines()
    print(liste_evenement)

Я хочу, чтобы мой код возвращался:

[['index_1'],['index_2'], ...]

DoЯ должен использовать for цикл?или даже while?Я немного сбит с толку из-за \n в конце каждой строки моего evenements.txt, так что если вы могли бы помочь мне с этим, потому что я знаком с .strip(), когда я использую его в строке, но это не такработая над списком.

РЕДАКТИРОВАТЬ: вот пример того, что мне нужно сделать сейчас:

Мой код теперь возвращает:

[['Musique/Shawn Phillips/2018-08-24/2018-08-24'], "Musique/L'avenue Royale fête l'été!/2018-08-25/2018-08-25"], 'Musique/Perséides musicales/2018-08-03/2018-08-03'], 'Musique/Gaétan Leclerc chante Félix et…/2018-08-17/2018-08-17']]

Что мне нужно сделатьтеперь мне нужно добавить «для каждого» / «в моем коде так» между Musique и shawn и еще одно между phillips и 2018, кроме года / месяца / дня (просто посмотрите на результат ниже.Имейте в виду, что это только часть кода, и мой список на самом деле содержит индекс 160.

, поэтому вот результат, который я ищу:

[['Danse', 'Samedi de danser...', 202, 202],

1 Ответ

0 голосов
/ 09 октября 2018

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

with open("yourfile", "r") as f:
    number_of_lists = 4
    lists = [f[i::number_of_lists] for i in range(number_of_lists)]

Не уверен, что вы можете нарезать файл напрямую;если нет, создайте список fa со всеми строками в нем. , как было указано в комментариях, вы не можете напрямую, но можете использовать itertools.islice для этого.Или создайте список

. Он берет каждый n-й элемент из файла и смещает начало этого n-го числа с помощью n.

EDIT: просто прочитайте ваш комментарий, если вы хотите, чтобы каждая строка была списком:

with open("file" ,"r") as f:
    list = [[x] for x in f]

РЕДАКТИРОВАТЬ2: для удаления новых строк:

with open("yourfile", "r") as f:
    number_of_lists = 4
    lists = [[x.rstrip("/n") for x in f[i::number_of_lists]] for i in range(number_of_lists)]
...