我经常发现自己在大量文本中徘徊,提取术语或以其他方式清理内容,因此我重新使用字符串作为文件名等。
在最近的一次任务中,我从网站上抓取了几百个pdf文件,并希望使用文章标题作为文件名来帮助同事 checkin 文件。
我可以从html中获取标题,但标题中经常使用非法的win O/S字符(例如 :
、 "
、 >
等),这意味着我必须做一些替换确保我可以使用这个标题。
由于上述原因,我开始使用这行代码:-
fname = art_number+" "+content_title.replace(":", " -").replace("–", "-").replace(u'\xae', "-").replace("\"", "").replace("?","").replace("<i>", "").replace("</i>", "").replace("/", " ").replace("<sup>-< sup>", "-")
正如你所看到的。成堆的str.replace
,不太可读或易于管理。
每个替换通常都是手动考虑的,我不想将它们扔到代码簿中,因为我想查找和检查每组内容通常有一些细微差别。
您对此有何看法?
最佳答案
对于单字符替换,我会使用 unicode.translate
对于较长的字符串,我将构建一个由前导两个字符索引的可能替换的字典,然后逐步遍历字符串,仅测试每个位置的可能替换。
关于Python - 更好地处理多个 str.replace 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20382758/