删除空格并在python中添加逗号

时间:2013-06-28 20:15:25

标签: python

这是我的代码:

import fileinput


input_file = 'in.txt'
output = open('out.txt', 'w+')


for each_line in fileinput.input(input_file):
    output.write(x.strip() for x in each_line.split(','))

我得到“期望字符缓冲区”作为错误。我不确定最好的方法是什么?我试图删除所有标签和空格,并用逗号替换它们。

编辑:例如我的数据如下:

1   2335    mike

1   4089    doug

我想把它变成

1,2335,mike noll

1,4089,doug funny

编辑,我只想删除前2列中的前2个空格

2 个答案:

答案 0 :(得分:1)

x.strip() for x in each_line.split(',')会返回一个生成器对象(不是output.write所期望的字符串缓冲区)

你可以这样做:

with open('out.txt', 'w+') as output:
    for each_line in fileinput.input(input_file):
        output.write("\n".join(x.strip() for x in each_line.split(',')))

答案 1 :(得分:0)

使用str.join将列表加入字符串,然后将其写入文件。

在您的代码中,您实际上将genexp传递给file.write

for each_line in fileinput.input(input_file):
    output.write(" ".join(x.strip() for x in each_line.split(',')) +'\n')

<强>更新

with open('out.txt', 'w') as f:
    for line in fileinput.input('input.txt'):
        line = line.split(None,2)
        f.write(','.join(line))