1

私はテキストファイルを使用しています例:

blahblahblahblahblahblahblah
blahblahblahblahblahblahblah
start
important1a important1b
important2a important2b
end
blahblahblahblahblahblahblah

私が欲しいのは、次のような出力を取得することです

["'important1a', 'important1b'", "'important2a', 'important2b'"]

重要な各行が個々の要素に分割されているが、それらは1つのリストの行ごとにグループ化されている場合。

私はこれに近づきました:

import shlex

useful = []
with open('test.txt', 'r') as myfile:
    for line in myfile:
        if "start" in line:
            break
    for line in myfile:
        if "end" in line:
            break       
        useful.append(line)

data = "".join(useful)

split_data = shlex.split(data)
print split_data

これは以下を出力します:

['important1a', 'important1b', 'important2a', 'important2b']

線の区別はありません。

これを変更して各行を区別するにはどうすればよいですか?ありがとう!

4

3 に答える 3

2

レスキューへの内包表記をリストします。

[", ".join(map(repr, ln.split())) for ln in open("test.txt")
                                  if "important" in ln]

戻り値

["'important1a', 'important1b'", "'important2a', 'important2b'"]
于 2012-05-23T21:25:04.317 に答える
0

リスト内包表記を使用できます。コードは次のようになります。

useful = []
with open('test.txt', 'r') as myfile:
    for line in myfile:
        if "start" in line:
            break
    for line in myfile:
        line = line.strip()
        if "end" in line:
            break       
        useful.append(line)

print(["'%s'" % ','.join(elem.split(' ')) for elem in useful])
于 2012-05-23T21:30:43.217 に答える
0

このようなものはどうですか:

useful = []
for line in open('test.txt'):
    parts = line.split()
    if parts[1:]:
        useful.append("'%s'" % "', '".join(parts))

print useful
于 2012-05-23T21:25:33.863 に答える