파일에 아래의 정보가 포함되어 있습니다. 이 파일을 문자열 목록으로 변환하고 싶습니다. 그룹 사이에 빈 줄이 있습니다. 파이썬 : 파일을 문자열 목록으로 변환합니다.
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]]
이 시도 :
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]
이 솔루션은 심지어 당신이 그룹 또는 빈 여러 사이에 하나 이상의 빈 줄이 퇴화 파일 수 끝에 라인.
이 그렇게해야
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
코드가 있습니까? – squiguy
나는 각 그룹 사이에 빈 줄을 없앨 생각이다. 그러나 지금까지는 제 코드가 작동하지 않습니다. – user1718467
게시하면 도움이됩니다. :) – squiguy