ファイルには以下のような情報が含まれています このファイルを文字列のリストのリストに変換したい グループの間に空白行があります。
pear
banana
milk
tea
coffee
結果は次のように返されます。
build_list(f):
[[pear, banana], [milk, tea, coffee]]
ファイルには以下のような情報が含まれています このファイルを文字列のリストのリストに変換したい グループの間に空白行があります。
pear
banana
milk
tea
coffee
結果は次のように返されます。
build_list(f):
[[pear, banana], [milk, tea, coffee]]
これはそれを行う必要があります:
with open("data.txt") as f:
res = [line.split('\n') for line in f.read().split('\n\n')]
入力データをグループに分割し、各グループを行に分割します。
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
これを試して:
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]
このソリューションでは、グループ間に複数の空行がある、または最後に複数の空行がある縮退ファイルも許可されます。