2017-06-15 79 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(",") 

然後打印背出這條線,它應該解決您的問題。第一部分將空行拆分成一個列表,然後第二部分將列表中的各部分連接在一起形成一個帶有所需逗號的字符串。