中的空格。但是如何仅在第一列中更改空格?我想打破由逗号使用`fileout.write(x).replace(''。',')替换一行中用逗号替换所有空格的python
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
中的空格。但是如何仅在第一列中更改空格?我想打破由逗号使用`fileout.write(x).replace(''。',')替换一行中用逗号替换所有空格的python
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
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)
实际上产生了两个结果,所以你不要默默地将一些行而不是其他的。
小心创建'csv':'open(outfilename,'w',newline =“”)as outf' as doc states。某些版本的python(windows)往往会在每行之后留下额外的空白行。 –
@ Jean-FrançoisFabre:谢谢你的提醒。我责怪当地的大脑故障热浪。 :-) – ShadowRanger
不客气:)注意,我从来没有遇到问题,没有''换行' –
分离的日期和时间如下分为2列这是你需要什么?
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,网页浏览
'replace('',',',max = 1)'? –
@WoodyPride:第三个参数在文档中被命名为'count',但它只是位置的,所以它几乎不重要;不能通过一个有意义的名字来传递它。 – ShadowRanger