如何使用Python删除csv文件中逗号前后的空格?

问题描述 投票:0回答:3

目前我的 csv 文件的一行如下所示:

314523、165538、76255、335416、416827 1250536:1 1744638:1 298526:1 1568238:1

我需要它看起来像这样:

314523,165538,76255,335416,416827 1250536:1 1744638:1 298526:1 1568238:1

我只想删除逗号之前或之前的空格并保留其他空格不变。

我怎样才能在Python中做到这一点?

注意:我是 python 初学者

python regex csv
3个回答
6
投票

我建议使用替换功能。您输入要替换的模式。在您的示例中,模式是逗号空格

(', ')
和空格逗号
(' ,')
。然后说出您想要用
(',')
替换图案的内容。

line=line.replace(', ', ',').replace(' ,',',')

2
投票

您可以使用正则表达式来执行此操作,对于字符串:

import re
outputstring = re.sub(r'\s*,\s*', ',', inputstring)

此正则表达式匹配逗号周围的空格和逗号,并将其替换为逗号。对于文件,只需对每一行执行此操作。


0
投票

如果您只是尝试读取 CSV 文件,那么 Python csv 库将自动删除逗号后面的空格。请参阅下面的代码片段:

import csv

with open('my_file.csv', newline='\n') as csvfile:
  csv_reader = csv.reader(csvfile, delimiter=',')
  fields = next(csv_reader) # If there are fields/headers in the file
  rows = []
  for row in csv_reader:
    rows.append(row)
    
  print(f'Fields is {fields} and the first 5 rows are {rows[:5]}')
© www.soinside.com 2019 - 2024. All rights reserved.