python:将文件转换为字符串列表的列表

时间:2012-11-11 05:50:43

标签: python

文件包含以下信息 我想将此文件转换为字符串列表列表 组之间有一个空白行。

pear
banana

milk
tea
coffee

,结果返回:

build_list(f):
[[pear, banana], [milk, tea, coffee]]

3 个答案:

答案 0 :(得分:2)

这应该这样做:

with open("data.txt") as f:
    res = [line.split('\n') for line in f.read().split('\n\n')]

将输入数据拆分成组,然后将每个组拆分成行。

答案 1 :(得分:1)

试试这个:

from itertools import groupby

def build_list(name):
    with open(name, "r") as f:
        return [[i.strip() for i in group] for key, group in
                groupby(f, key=lambda k: (k.strip() == "")) if not key]

此解决方案甚至允许退化文件,其中组之间有多个空行或末尾有多个空行。

答案 2 :(得分:1)

Stack_13328928.txt是你的清单。请注意,输入文件中的最后一行必须是新行,否则最后一项会丢失,但我认为可以修改代码,不需要空白的新行。

import csv
in_file = open("stack_13328928.txt")
CSV = csv.reader(in_file)
outer_ls = []
inter_ls = []
for i in CSV:
    try:
        i[0]
        inter_ls += i
    except:
        outer_ls.append(inter_ls)
        inter_ls = []

print outer_ls