2017-06-15 75 views
0

如何将包含空格的csv数据转换为逗号?在循环中用逗号替换空格

我的代码

import csv 
from pprint import pprint 

with open('flare.csv', 'rb') as f: 
    reader = str(csv.reader(f)) 

    for row in reader.splitlines(): 
     print row 

数据

value,id 
1 aah 
1 aan 
3 acc 
4 account 
1 accounts 
1 action 
6 ada 
3 ade 
1 adik 
2 admin 

目标输出

value,id 
1,aah 
1,aan 
3,acc 
4,account 
1,accounts 
1,action 
6,ada 
3,ade 
1,adik 
2,admin 

请指教。

+2

它只包含一个空间?如何'str.replace('',',')'? –

+0

'print row.replace(“”,“,”)' –

+0

[Duplicate](https://stackoverflow.com/questions/19759423/convert-a-space-delimited-file-to-comma-separated-values-文件中的Python)? – Yonlif

回答

3

使用csv写你的列好,只是改变了分隔符:

import csv 

with open('flare.csv', 'rb') as f_in, open("out_flare.csv", "wb") as f_out: 
    reader = csv.reader(f_in, delimiter=" ") 
    writer = csv.writer(f_out, delimiter=",") 
    writer.writerows(reader) 

这将使相比它是安全的盲目更换字符作为您的CSV条目将需要他们周围添加引号某些情况下。

+0

ooops!你是对的;除了命名我的答案是完全一样的你的,我的后来进来......对不起! (我假设你是在开玩笑的碳复制..)+1 –

+0

@hiroprotagonist - 'twas a joke;)... btw。要添加一些有用的东西,在读取/写入CSV时应始终使用二进制模式,以便底层操作系统不会干扰新行。这是我们的答案之间的唯一区别:) – zwer

+0

了解了一些新的东西!谢谢! –

2

您可以将delimiter=' '指定为reader函数。

reader = csv.reader(f, delimiter=' ') 

在此描述https://docs.python.org/2/library/csv.html#csv-fmt-params

+2

...为什么'str(csv.reader(f))'...不会返回任何有用的东西。 –

+0

对不起,我的编辑得到保存错误,我复制,保存,然后把su​​gested参数在那里,但它没有出现。感谢提醒。 – John

0

走出一条线路在同一时间在这里,你会想要做的是:

line = line.split(" ") 
line = line.join(",") 

然后打印背出这条线,它应该解决您的问题。第一部分将空行拆分成一个列表,然后第二部分将列表中的各部分连接在一起形成一个带有所需逗号的字符串。