仅使用python替换第一列中的空格

时间:2017-09-25 20:14:00

标签: python

使用`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

2 个答案:

答案 0 :(得分:1)

  1. 鉴于这可能是CSV,您可以使用the csv module将列作为list中的元素(代表给定行),然后仅使用第一列
  2. 如果您知道每列只需要一次替换,您可以使用str.replace's optional third parameter来限制替换
  3. 通过#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,网页浏览