目前我的 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 初学者
我建议使用替换功能。您输入要替换的模式。在您的示例中,模式是逗号空格
(', ')
和空格逗号 (' ,')
。然后说出您想要用 (',')
替换图案的内容。
line=line.replace(', ', ',').replace(' ,',',')
您可以使用正则表达式来执行此操作,对于字符串:
import re
outputstring = re.sub(r'\s*,\s*', ',', inputstring)
此正则表达式匹配逗号周围的空格和逗号,并将其替换为逗号。对于文件,只需对每一行执行此操作。
如果您只是尝试读取 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]}')