我有一個文本文件中的以下內容:如何將多行文本合併到Python中的一行中並使用分隔符將它們分開?
line1
text1
text2
text3
line2
something1
something2
我想創建另一個文本文件看起來像這樣:
line1|text1|text2|text3
line2|something1|something2
只要在文本文件中的行說「行」我想使用'|'將下面的每一行添加到該行中分隔符。我可以用Python做到這一點嗎?
我有一個文本文件中的以下內容:如何將多行文本合併到Python中的一行中並使用分隔符將它們分開?
line1
text1
text2
text3
line2
something1
something2
我想創建另一個文本文件看起來像這樣:
line1|text1|text2|text3
line2|something1|something2
只要在文本文件中的行說「行」我想使用'|'將下面的每一行添加到該行中分隔符。我可以用Python做到這一點嗎?
如果你的文件是不是非常大
data=open("file").readlines()
for n,line in enumerate(data):
if line.startswith("line"):
data[n] = "\n"+line.rstrip()
else:
data[n]=line.rstrip()
print '|'.join(data)
current = None
parts = []
with open('input', 'rb') as f:
for line in f:
if line.startswith('line'):
current = [line.strip()]
parts.append(current)
elif current is not None:
current.append(line.strip())
with open('output', 'w+b') as f:
f.write('\n'.join(('|'.join(part) for part in parts)))
這裏是一個一行它採用line1, line2, ...
而不實際從該行讀取數:
['|'.join(['line%d' % i] + x.strip('\n').split('\n')) for i, x in enumerate(re.split('line[0-9]+', l)) if x.strip('\n')]
def join_lines(lines, sent='line'):
current = []
for line in lines:
if line.startswith(sent):
yield current
current = []
current.append(line)
yield current
# data = open('input.txt', 'rt')
data = """line1
text1
text2
text3
line2
something1
something2""".splitlines()
print ['|'.join(line) for line in join_lines(data) if line]
+1因爲這是唯一提供的一線答案 – 2011-04-26 14:17:41