Python读取包含换行符和段落分隔元素的文本文件

Python读取包含换行符和段落分隔元素的文本文件,python,pandas,text-files,readfile,Python,Pandas,Text Files,Readfile,我正在尝试将一个文本文件读入Python中的嵌套列表。也就是说,我希望输出为: [[$5.79, Breyers Ice Cream, Homemade Vanilla, 48 oz], [$6.39, Haagen-dazs, Vanilla Bean Ice Cream, 1 pt], etc...]] 最终目标是将信息读入一个数据框架,以便进行一些探索性分析 .txt文件中的数据 我试过的 然而,这返回: ['$5.79\nBreyers Ice Cream\nHomemade Vani

我正在尝试将一个文本文件读入Python中的嵌套列表。也就是说,我希望输出为:

[[$5.79, Breyers Ice Cream, Homemade Vanilla, 48 oz], [$6.39, Haagen-dazs, Vanilla Bean Ice Cream, 1 pt], etc...]]
最终目标是将信息读入一个数据框架,以便进行一些探索性分析

.txt文件中的数据 我试过的 然而,这返回:

['$5.79\nBreyers Ice Cream\nHomemade Vanilla\n48 oz', '$6.39\nHaagen-dazs\nVanilla Bean Ice Cream\n1 pt',
我还尝试使用列表理解方法,这些方法看起来比上面的代码更简洁,但是这些尝试处理的是换行,而不是段落或返回。例如:

[x for x in open('<file_name>.txt').read().splitlines()]  
#Gives
['$5.79', 'Breyers Ice Cream', 'Homemade Vanilla', '48 oz', '', '$6.39', 'Haagen-dazs', 'Vanilla Bean Ice Cream', '1 pt', '', '
我知道我需要在列表理解中嵌套一个列表,但我不确定如何执行拆分


注意:这是我第一个发帖的问题,很抱歉问题太长或不够简短。寻求帮助,因为有类似的问题,但与我想要的结果不符。

一旦你将四个线组分开,你就几乎成功了。剩下的就是用一个换行符再次拆分组

with open('creams.txt','r') as f:
    creams = f.read()

creams = creams.split("\n\n")
creams = [lines.split('\n') for lines in creams]
print(creams)

一旦你把四个线组分开,你就快到了。剩下的就是用一个换行符再次拆分组

with open('creams.txt','r') as f:
    creams = f.read()

creams = creams.split("\n\n")
creams = [lines.split('\n') for lines in creams]
print(creams)

你只要再把它分开就行了

打开'sample.txt','r'作为文件: creams=file.read 奶油=奶油。分割\n\n 奶油=[lines.split'\n'表示奶油中的线条] 印花膏 ['$5.79','布雷耶斯冰淇淋','自制香草','48盎司',['$6.39','哈根达斯','香草豆冰淇淋','1磅',['$6.89','So Delicious','无奶椰子牛奶不加糖浸香草条','4 x 2.3盎司',['$5.79','冰棒水果汽水芒果','-','12克拉]] 转换为数据 df=pd.DataFramecreams,列=['Amnt'、'Brand'、'FAVOR'、'Qty']
注意:我在最后一行添加了-flavor列,因为它是空的。如果是原始数据集,则在执行任何分析之前必须考虑到这一点。

只需再次拆分即可

打开'sample.txt','r'作为文件: creams=file.read 奶油=奶油。分割\n\n 奶油=[lines.split'\n'表示奶油中的线条] 印花膏 ['$5.79','布雷耶斯冰淇淋','自制香草','48盎司',['$6.39','哈根达斯','香草豆冰淇淋','1磅',['$6.89','So Delicious','无奶椰子牛奶不加糖浸香草条','4 x 2.3盎司',['$5.79','冰棒水果汽水芒果','-','12克拉]] 转换为数据 df=pd.DataFramecreams,列=['Amnt'、'Brand'、'FAVOR'、'Qty']
注意:我在最后一行添加了-flavor列,因为它是空的。如果是原始数据集,则在执行任何分析之前必须考虑到这一点。

这非常有效。最初我有一个ValueError,传递了4列,传递的数据有5列。最后一个嵌套列表包含“”元素。我将研究如何标记课文的结尾。添加了一个可以删除的杂项列。干杯,这很有效。最初我有一个ValueError,传递了4列,传递的数据有5列。最后一个嵌套列表包含“”元素。我将研究如何标记课文的结尾。添加了一个可以删除的杂项列。干杯。谢谢,我没有足够的声望去投票,但如果我投票的话,我会的!谢谢,我没有足够的声望去投票,但如果我投票的话,我会的!
with open('creams.txt','r') as f:
    creams = f.read()

creams = creams.split("\n\n")
creams = [lines.split('\n') for lines in creams]
print(creams)
      Amnt                      Brand  \
0  $5.79          Breyers Ice Cream     
1  $6.39                Haagen-dazs     
2  $6.89               So Delicious     
3  $5.79    Popsicle Fruit Pops Mango   

                                              Flavor         Qty  
0                                 Homemade Vanilla         48 oz  
1                           Vanilla Bean Ice Cream          1 pt  
2  Dairy Free Coconutmilk No Sugar Added Dipped V...  4 x 2.3 oz  
3                                                  -       12 ct