繁体   English   中英

从文本文件中删除所有引号字符

[英]Removing all quote characters from text files

我正在读取具有常规python文本编码的utf8文件。 我还需要删除文件中的所有引号。 但是,utf8代码具有多种引号,我无法弄清楚如何消除所有引号。 下面的代码作为我一直在尝试的示例。

def change_things(string, remove):
    for thing in remove:
        string = string.replace(thing, remove[thing])
    return string

哪里

remove = {
'\'': '',
'\"': '',
}

不幸的是,此代码仅删除普通引号,而不会去除左或右引号。 有什么办法可以使用与我执行的操作类似的格式来删除所有此类引号(我认识到,还有其他更有效的方法可以从字符串中删除项目,但是鉴于代码的整体上下文,这对于我的特定项目更有意义)?

您可以在文件中键入这些类型的内容,然后将其替换为其他任何字符。

utf8_quotes = "“”‘’‹›«»"
mystr = 'Text with “quotes”'
mystr.replace('“', '"').replace('”', '"')

也有一些不同的单引号变体。

https://gist.github.com/goodmami/98b0a6e2237ced0025dd上有一个Unicode引号列表。 那应该允许您删除任何类型的引号。

有多种方法可以做到这一点,正则表达式是其中一种:

import re
newstr = re.sub(u'[\u201c\u201d\u2018\u2019]', '', oldstr)

另一种干净的方法是使用Unidecode 这不会直接删除引号,而是将其转换为中性引号。 还将所有非ASCII字符转换为与其最接近的ASCII等效字符:

from unidecode import unidecode
newstr = unidecode(oldstr)

然后,您可以使用代码删除引号。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM