我有一个文本文件,带有一些单词,每个单词都在一个单独的行中。我如何创建一个新的文本文件,该文件将原始文件中的每2或3或x行/单词放入一行中?
例如,这是输入:
one
two
three
four
five
six
seven
eight
和我想要的输出:
one two
three four
five six
seven eight
我已经写了这篇文章是为了让您开放。它读取第一个文件" input.txt",然后将指定数量的行写入新文件'new.txt'。
lines_to_write = 5 #amount of lines to write from old file to new
with open('input.txt') as f:
data = f.readlines()
with open('new.txt', 'w') as f:
for x in range(lines_to_write):
f.write(data[x])
这显示了如何操纵文件,应该是您开始的良好基础。
似乎您希望将一条可变的行写入一行。因此,我写了一个列表理解,将结合了可变的行数。
with open("in.txt","r") as fi, open("out.txt","w") as fo:
li = fi.readlines()
inBetween = 2
fo.write("n".join(" ".join(line.strip() for line in li[i:i+inBetween]) for i in range(0,len(li),inBetween)))
每第二行:
for x in xrange(len(v.splitlines())):
if x%2 == 0:
print " ".join(v.splitlines()[x:x+2])
每第三行:
for x in xrange(len(v.splitlines())):
if x%3 == 0:
print " ".join(v.splitlines()[x:x+3]
短:
[ " ".join(v.splitlines()[x:x+2]) for x in xrange(len(v.splitlines())) if x%2 == 0 ]
[ " ".join(v.splitlines()[x:x+3]) for x in xrange(len(v.splitlines())) if x%3 == 0 ]
等...