每行输出三个字的文件 - Python

时间:2014-10-31 23:57:33

标签: python python-2.7 split newline

我有一个文件,其中包含所有不同行的单词列表,例如:

cat
dog
horse
pig
sheep
mouse

我想在python中写一些东西,将3个单词连接在一起,用空格分隔,然后继续浏览文件,样本输出如下:

cat dog horse
pig sheep mouse

这可能吗?如果有人能帮助我,我真的很感激。

3 个答案:

答案 0 :(得分:1)

非常简单! itertools.izip_longest

from itertools import izip_longest

content = open("/tmp/words").read()
step   = 3
# get line content and skip blank lines
words  = [line for line in content.split("\n") if line ]

for group in izip_longest(*[iter(words)] * step, fillvalue=""): 
    print " ".join(group) # join by spaces

答案 1 :(得分:0)

首先打开文件并在

中阅读
 file_contents = open("some_file.txt").read().split()

然后打开一个文件写入

 with open("file_out.txt","w") as f:

然后你做魔术

     f.write("\n".join(" ".join(row) for row in zip(*[iter(file_contents)]*3)))

答案 2 :(得分:-2)

f=open('your_file','r')
f=f.readlines()
for x in [ " ".join(b[x-3:x]).replace('\n','') for x in range(1,len(b)) if x%3==0 ]
    print x
if len(f)%3 > 0:
   print " ".join(b[-(len(b)%3):]).replace('\n','')

示例:

a=['cat','dog','bat','hello','baby','stack','overflow','python','code','search','string']
output will be:
'cat dog bat'
'hello baby stack'
'overflow python code'
'search string'

, 打开文件,使用readlines()读取文件,然后检查三个中的多个,最后检查mod for,最后一个元素,当它不是三个的倍数时