我一直在用Python進行解碼和編碼,我不知道如何解決我的問題。我使用美麗的湯來解析每個文件,然後查看文件中的任何句子是否包含來自兩個不同單詞列表的一個或多個單詞,從而循環顯示用utf-8編碼的xml文本文件(sample)。因爲xml文件來自十八世紀,所以我需要保留xml中的em破折號。下面的代碼可以做到這一點,但它也保留了我希望刪除的討厭的框角色。我相信箱子的角色是this character。在這個網頁上,這個字符看起來像一個'或'管道,但是當我在Komodo中讀取xml文件時,它看起來像一個盒子,當我試圖將盒子複製並粘貼到搜索引擎中時,它看起來像一個'或'管道,但當我打印到控制檯時,該字符看起來像一個空盒子。)Python:從字符串中刪除特定字符(u「 u2610」)
總而言之,下面的代碼運行時沒有錯誤,但它會打印我想要刪除的空框字符。
for work in glob.glob(pathtofiles):
openfile = open(work)
readfile = openfile.read()
stringfile = str(readfile)
decodefile = stringfile.decode('utf-8', 'strict') #is this the dodgy line?
soup = BeautifulSoup(decodefile)
textwithtags = soup.findAll('text')
textwithtagsasstring = str(textwithtags)
#this method strips everything between anglebrackets as it should
textwithouttags = stripTags(textwithtagsasstring)
#clean text
nonewlines = textwithouttags.replace("\n", " ")
noextrawhitespace = re.sub(' +',' ', nonewlines)
print noextrawhitespace #the boxes appear
我嘗試用
noboxes = noextrawhitespace.replace(u"\u2610", "")
除去箱子但是Python中拋出一個錯誤標誌:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 280: ordinal not in range(128)
有誰知道我可以從XML文件中刪除的箱子?我會很感激別人可以提供的任何幫助。
哇,誰是生成的XML文件在18世紀?萊布尼茨? – abarnert
(萊布尼茨的確如此,但牛頓擊敗了他。) – duhaime
同時,'str(readfile)'應該做什麼?文件的'read'方法已經返回一個'str'。 – abarnert