从Python中的字符串中删除特殊字符

时间:2016-03-04 09:26:28

标签: python

我在Python中使用像这个字符串的Text。

如何删除Python中的↑。

我尝试了谷歌提出的大多数方法,但似乎都没有。

Lorem Ipsum
                    ↑



        The results really show what a poisonous

5 个答案:

答案 0 :(得分:3)

你试过dealloc吗?

str.replace()

这适用于口译员。如果您的代码在一个文件中,那么您可以通过将此行放在顶部来声明.py文件的文件编码:

>>> s = '''Lorem Ipsum
                    ↑



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




        The results really show what a poisonous

答案 1 :(得分:1)

你可以这样做:

pylint

这将删除所有非标点符号/字母数字字符

答案 2 :(得分:0)

嗯,你在这里展示的包含unicode字符U + 2191。但你忘了说它是一个unicode字符串还是一个字节串,在后一种情况下是什么是charset。

如果是unicode字符串(Python 3字符串或Python 2 unicode):

s.replace(u'\u2191', u'')
无论您的Python版本还是字符集,

都可以解决问题。

如果是字节字符串(Python 2字符串或Python 3字节)

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

这个技巧可以让你知道你使用什么字符集。

我总是喜欢非ascii字符的这种输入,因为用于读取Python源的字符集可能不是程序运行时使用的字符集(# -*- coding= ... -*-行的意思)

答案 3 :(得分:-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()  

在这个例子中,我将“perros”替换为“gatos”并删除↑符号,请确保您要替换的文件保存在 UTF-8编码中。

答案 4 :(得分:-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)