我正在尝试加密文本,但我遇到以下问题:
我有一个巨大的字符串(大约500多个页面连接在一起),其中包含以下形式的字符:
÷ΆώϋⁿΪⁿ÷ό±όⁿΈϊ÷ωΪⁿάⁿ÷ώ÷Ύ≤÷ώ
我需要从字符串中删除这些字符,只是我不知道如何。
假设这个大字符串被称为data
。
我正在尝试以下方法:
for i in data:
if i not in string.ascii_letters and i not in n and i not in string.punctuation and i !=' ':
data.replace(i,"")
但是,它不起作用,因为之后我使用以下命令:
q=''
for i in data:
if i not in string.ascii_letters and i not in n and i not in string.punctuation and i !=' ':
q=q+i
print q
再次打印÷ΆώϋⁿΪⁿ÷ό±όⁿΈϊ÷ωΪⁿάⁿ÷ώ÷Ύ≤÷ώ
。
答案 0 :(得分:1)
data.replace(i,"")
replace
没有修改data
,它会创建一个新的字符串实例并将其返回。尝试将结果分配回data
:
data = data.replace(i,"")
答案 1 :(得分:0)
以下是将删除非ascii的完整代码:
# -*- coding: UTF-8 -*-
data = 'poqwe÷ΆώϋⁿΪⁿbar÷ό±όⁿΈϊfoo÷ωΪⁿάⁿ÷ώ÷Ύ≤÷ώ42'
def remove_non_ascii(data):
return ''.join([i if ord(i) < 128 else '' for i in data])
data = remove_non_ascii(data)
print data
使用简单的for循环,它看起来像:
# -*- coding: UTF-8 -*-
data = 'poqwe÷ΆώϋⁿΪⁿbar÷ό±όⁿΈϊfoo÷ωΪⁿάⁿ÷ώ÷Ύ≤÷ώ42'
def remove_non_ascii(data):
foo = ''
for i in data:
if (ord(i) < 128):
foo += i
else:
foo += '' # whatever you wanna put instead of non-ascii
return foo
data = remove_non_ascii(data)
print data