2016-03-04 451 views
-3

我在Python中有這樣的字符串。在Python中刪除字符串中的特殊字符

如何刪除Python中的↑。

我已經嘗試了谷歌提出的大多數方法,但似乎沒有工作。

Lorem Ipsum 
        ↑ 



     The results really show what a poisonous 
+0

你可以發佈你的代碼,你試過了嗎? – Hackaholic

+0

你是否明確表示只有箭頭字符或任何特殊字符?標題和正文之間有衝突。 – dinos66

回答

3

你試過str.replace()

>>> s = '''Lorem Ipsum 
        ↑ 



     The results really show what a poisonous''' 
>>> s = s.replace('↑', '') 
>>> print(s) 
Lorem Ipsum 




     The results really show what a poisonous 

這在解釋器中起作用。

# -*- coding: utf-8 -*- 
+0

非常感謝。我認爲對我來說缺少的一點就是指定編碼類型。 – CKCK

-1

我使用這個腳本在python替換和刪除字符:

#!/usr/bin/env python 
# -*- coding: UTF-8 -*- 
#Script for replacing characters on plain text file 

original = open('input.txt', 'r') 
final = open('output.txt',"w") 

diccionario = [ 
("perros", "gatos"), 
("↑", "") 
] 

data = original.read() 
original.close() 
salida = reduce(lambda a, kv: a.replace(*kv), diccionario, data) 
final.write(salida) 
final.close() 
如果你的代碼是在一個文件中,那麼你可以通過將該線在頂部聲明你的.py文件的文件編碼

在本例中,我將「perros」替換爲「gatos」並刪除↑符號,請確保您要替換的文件保存在UTF-8編碼中。

0

那麼,你在這裏展示的包含unicode字符U + 2191。但是你忘了說它是一個unicode字符串還是一個字節字符串,在後一種情況下字符串是什麼。

如果它是一個unicode字符串(Python 3的字符串或Python 2的Unicode):

s.replace(u'\u2191', u'') 

的伎倆,無論是你的Python版本或字符集。

,如果它是一個字節的字符串(Python的2串或Python 3字節)

s.replace(u'\u2191'.encode(charset), b'') 

開了竅只要你知道你用什麼字符集。

我總是prefere這種非ASCII字符輸入的,這是因爲字符集用來讀取Python源在程序運行時可以不使用的字符集(那個什麼# -*- coding= ... -*-線是爲)

1

你可以這樣做:

s = '''Lorem Ipsum 
        ↑ 
     The results really show what a poisonous''' 
clean_string = "".join([ch for ch in s if ch.isalnum() or ch in string.punctuation or ch.isspace()]) 

這將刪除所有非標點符號/字母數字字符

-1

我不能完全肯定,如果你想只保留文字和數字,所以如果你只需要所有的特殊字符經歷了一段時間我會建議這樣的標識任何特殊字符而不僅僅是一個:

import re 
txt = 'Lorem Ipsum^The results really show what a poisonous' 
for x in filter(str.strip, re.findall("[^\w.]+", txt)): 
    txt = txt.replace(x,' ') 
    print(txt) 
+0

OP明確要求如何刪除↑字符。 – mhawke

+0

你是對的,從這個意義上說,這個問題已經得到解答(我已經提出了相應的答案)。然而,主題是「從字符串中刪除特殊字符」,所以我想我會給出更廣泛的答案以防萬一。 – dinos66

相關問題