python - 从python中的字符串列表中删除或删除所有特殊字符
问题描述
我有字符串列表,我必须删除所有特殊字符(,-'“。)。
我的代码是
import glob
import re
files = []
for text in glob.glob("*.txt.txt"):
with open(text) as f:
fileRead = [ line.lower() for line in f]
files.append(fileRead)
files1 = []
for item in files :
files1.append(''.join(item))
我使用了很多选项,包括“replace”、“strip”和“re”。
当我使用条带(如下所示)时,代码运行但在输出中看不到任何变化。
files1 = [line.strip("'") for line in files1]
当我使用 re 时,我得到 TypeError: expected string or bytes-like object。我从列表列表更改为字符串列表,以便我可以使用 re。这种方法被多次陈述,但并没有为我解决问题。
files1 = re.sub(r"[-()\"#/@;:<>{}`+=~|.!?,]", "", files1)
我无法使用替换,因为它会引发属性错误,替换不能用于列表。
请建议我如何摆脱所有特殊字符。
解决方案
您应该将 re.sub 函数应用于单个对象,而不是列表。
files_cleaned = [re.sub(r"[-()\"#/@;:<>{}`+=~|.!?,]", "", file) for file in files]
如果您只想接受字母数字字符,您可以这样做:
files_cleaned = [re.sub(r"[^a-zA-Z0-9]", "", file) for file in files]
推荐阅读
- rancher - 创建 k3s 集群(第二个节点)时出现令牌错误
- java - 将行条目与 apache-spark 中的一个或多个先前行值进行比较
- string - 用逗号查找单词
- javascript - 如果 preventDefault() 仅阻止默认浏览器操作,您如何取消 customEvent?
- excel - 将范围内的多列堆叠为一列的 VBA 代码得到运行时错误 1004(粘贴和复制区域的大小和形状不同)
- javascript - 函数中的 JavaScript 图像预加载
- javascript - html 弹出窗口中的选择选项不起作用
- project - 如何使用 SuiteAnalytics Connect 访问 Netsuite 项目(recordtype=job)?
- powershell - 如何使用 Azure DevOps 在远程 Windows 机器上运行批处理文件,在目标机器上运行 Powershell?
- javascript - Ruby 和 JavaScript 中的符号是否具有相同的用途?