Python 在循环中用逗号替换空格
如何将包含空格的csv数据转换为逗号 我的代码Python 在循环中用逗号替换空格,python,Python,如何将包含空格的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
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
您可以为
读取器
函数指定分隔符=''
reader = csv.reader(f, delimiter=' ')
这里描述了它您可以为
读取器
函数指定分隔符=''
reader = csv.reader(f, delimiter=' ')
这里描述了一次只走一行,您要做的是:
line = line.split(" ")
line = line.join(",")
然后把这一行打印出来,它会解决你的问题。第一部分用空格将行分割成一个列表,第二部分用所需的逗号将列表的各个部分重新连接成一个字符串。在这里,您需要做的是:
line = line.split(" ")
line = line.join(",")
然后把这一行打印出来,它会解决你的问题。第一部分用空格将行分隔成一个列表,第二部分用所需的逗号将列表的各个部分重新连接成一个字符串。使用
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条目需要在其周围添加引号。使用
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条目需要在其周围添加引号。它只包含一个空格?
str.replace(“”,“,”)
?print row.replace(“”,“,”)
?@JamesKPolk在哪里可以替换它?@IanMobbs如何检查python对象内部的值?它只包含一个空格?str.replace(“”,“,”)
?print row.replace(“”,“,”)
?@JamesKPolk在哪里可以替换它?@IanMobbs如何检查python对象内的值?。。。为什么str(csv.reader(f))
。。。这不会返回任何有用的内容。很抱歉,我的编辑保存错误,我复制、保存了sugested参数,然后将其放入其中,但它没有显示出来。谢谢提醒。。。。为什么str(csv.reader(f))
。。。这不会返回任何有用的内容。很抱歉,我的编辑保存错误,我复制、保存了sugested参数,然后将其放入其中,但它没有显示出来。谢谢你的提醒!你是对的;除了命名外,我的答案与你的答案完全相同,我的答案后来才出现。。。很抱歉(我想你是在开复写本的玩笑吧……)+1@hiroprotagonist这是个笑话;)。。。顺便说一句,为了增加一些有用的东西,在读/写CSV时应该始终使用二进制模式,这样底层操作系统就不会干扰新行。这就是我们答案之间的唯一区别:)哎呀!你是对的;除了命名外,我的答案与你的答案完全相同,我的答案后来才出现。。。很抱歉(我想你是在开复写本的玩笑吧……)+1@hiroprotagonist这是个笑话;)。。。顺便说一句,为了增加一些有用的东西,在读/写CSV时应该始终使用二进制模式,这样底层操作系统就不会干扰新行。这是我们答案之间的唯一区别:)