如何将file.txt放入python中的多个列表

时间:2018-10-09 05:26:32

标签: python list file readlines

我正在尝试将file.txt放入列表,然后将每个索引放入不同的列表,而所有列表仍保留在初始列表中。到目前为止,我已经可以将其添加到一个列表中。

这是我的代码:

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

我希望我的代码返回:

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

我必须使用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 :(得分:-1)

您可以为此使用切片和理解:

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

不确定是否可以直接切片文件; 注释中已经指出,您不能直接使用itertools.islice来这样做。或列出清单

这从文件中获取第n个元素,并使用n偏移此nth的开头。

编辑:如果您希望每行成为一个列表,请阅读您的评论:

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

EDIT2:删除换行符:

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