我在短.csv
上运行测试:
这就是我的“原始”.csv
的样子:
> print test.csv
> onü, toé, 112 #first line in .csv
> four, FIVE, seven #second line in .csv
我想读出来并做一些字符串格式化。
# -*- coding: utf-8 -*-
allowed = re.compile("[^0-9a-zA-Z\s,.:]")
myJoin = ""
with open("test.csv") as f:
for i in f:
splitted = i.split(",")
myString = ",".join(splitted)
myList = list(myString)
for j in allowed.finditer(myString):
x = int(j.start())
del myList[x]
当我打印x
时,我得到了这个输出:
> x
> 2
> 3
> 8
> 9
我以为我在我的allowed
中打了空白,逗号?!
我无法理解为什么它将这些标记为“不应该在那里”。此外,我无法直接将其写回.csv
看起来像这样。
我的新人,“干净”.csv
:
> print test.csv
> on, to, 112 #first line in .csv
> four, FIVE, seven #second line in .csv
答案 0 :(得分:0)
您可以使用Python的csv
模块来帮助解决这个问题。以下内容可为您提供所需的结果:
import csv
import re
with open('input.csv', 'r') as f_input, open('output.csv', 'wb') as f_output:
csv_input = csv.reader(f_input, skipinitialspace=True)
csv_output = csv.writer(f_output)
keep = re.compile(r'[^0-9a-zA-Z\s,.:]')
for cols in csv_input:
cols = [keep.sub('', col) for col in cols]
csv_output.writerow(cols)
给你一个output.csv
如下:
on,to,112
four,FIVE,seven
答案 1 :(得分:0)
与Martin Evans的回答没有什么不同,只是它使用了每个项目的替代品:
<p> This is my include file </p>
请注意,前导空格会在结果中消失,但这不是一件坏事。