使用`fileout.write(x).replace(''。',')用连续逗号替换所有空格时。但是如何仅在第一列中更改空格?我想将下面的日期和时间分成2个用逗号分隔的列
2017/06/07 10:40:02,Rule VWIRE 02,web browsing
2017/06/07 10:40:02,Rule VWIRE 02,web browsing
2017/06/07 10:40:02,Rule VWIRE 02,web browsing
答案 0 :(得分:1)
csv
module将列作为list
中的元素(代表给定行),然后仅使用第一列str.replace
's optional third parameter来限制替换通过#2解决是微不足道的:
with open(infilename) as inf, open(outfilename, 'w') as outf:
for line in inf:
outf.write(line.replace(' ', ',', 1)
方法#1只涉及更多(可能更正确):
import csv
with open(infilename, newline='') as inf, open(outfilename, 'w', newline='') as outf:
csvout = csv.writer(outf)
for row in csv.reader(inf):
# Only splits first whitespace in first column
csvout.writerow(row[0].split(None, 1) + row[1:])
在后一种情况下,您可能需要执行检查以确认row[0].split(None, 1)
实际产生了两个结果,因此您不会默默地删除某些行而不是其他行。
答案 1 :(得分:0)
这是你需要的吗?
s = '2017/06/07 10:40:02,Rule VWIRE 02,web browsing'
s = s.split(' ')
s[0] += ','
s = ''.join(s)
输出: 2017/06 / 07,10:40:02,RuleVWIRE02,网页浏览