簡體   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