如何删除CSV中的所有标点符号和特殊字符并用“数字”字符串替换数字?

意大利面

我正在以新的 CSV 输出 2 列中的数据。我在用“数字”字符串替换列中的数字并删除所有标点符号和特殊字符时遇到困难。尝试过string.punctuation,对我帮助不大,或者至少我没有很好地使用它......

这是我的代码,直到现在:

编辑:

import csv
import re


cols = [0, 7]  # column index numbers to be extracted
extracted = []

with open('data.csv', newline='') as csvfin:
    csvReader = csv.reader(csvfin, delimiter=',', quotechar='"',
                           quoting=csv.QUOTE_MINIMAL)
    with open('output.csv', 'a', newline='') as csvfout:
        csvWriter = csv.writer(csvfout, delimiter=',', quotechar='"',
                               quoting=csv.QUOTE_MINIMAL)
        for row in csvReader:
                for col_num in cols:
                    extracted.append(row[col_num].lower())
                    extracted = re.sub(r'[,.:@#?!&$]', ' ', extracted)
                    extracted = [re.sub('\d+', 'number', change) for change in extracted]
                csvWriter.writerow(extracted)
                extracted = []
R·阿克托

删除了我的旧答案,我有点误解了你在问什么。不确定用“数字”字符串替换数字是什么意思,但这将有助于从提取的文本列表中删除标点符号。

换线

extracted = re.sub(r'[,.:@#?!&$]', ' ', extracted)

extracted = [re.sub([,.:@#?!&$], ' ', text) for text in extracted]

解释该更改的作用:

由于re.subextracted调用re.sub每个字符串时不接受通过字符串的列表循环,这是通过列表理解完成的,我建议您查看它们是否对您来说是新的。然后将“清理过的”列表分配回extracted.

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何删除字符串中的所有数字和所有标点符号?

如何从Lua中的字符串中删除所有特殊字符,标点符号和空格?

从字符串中删除所有标点符号,除非它在数字之间

如何从字符串中删除或替换所有标点符号?

如何从对“ C”中的“ bash”具有特殊含义的字符串中删除标点符号

如何从字符串中解析 Python 中的数字和标点符号

如何用数字和特殊字符替换字符串中的所有数字?

如何用'\\W'替换字符串中的所有标点符号?

如何替换字符串中除方括号和反斜杠外的所有标点符号?

从字符串中删除所有特殊字符(数字和度数符号除外)?

删除字符串末尾的所有标点符号

R-gsub从字符串中删除标点符号和数字

带有字符串(字母和标点符号)的任何数字的REGEX是什么?

如何从字符串中删除标点符号

PHP-从字符串的开头和结尾删除所有标点符号

如何通过标点符号分割字符串而忽略数字中的句点

在Python中从字符串中删除标点符号

Javascript:如何从字符串末尾删除标点符号

从numpy字符串数组中删除标点符号

从Unicode格式的字符串中删除标点符号

从串联字符串中删除结尾的标点符号

从Unicode格式的字符串中删除标点符号

从字符串中删除标点符号的最佳方法

最后从字符串中删除标点符号

从字符串中删除标点符号

从标点符号之外的文本中删除所有字符

Java删除了保留重音符的字符串(也包括“”和所有这些)上的标点符号

删除标点符号在Java中无法通过字符串替换进行操作

如何通过空格和标点符号拆分字符串,但保留标点符号?