我正在处理一个.txt文件。我想要一个没有非ASCII字符的文本字符串。但是,我想留下空格和句号。目前,我也在剥离这些。代码如下:
def onlyascii(char):
if ord(char) < 48 or ord(char) > 127: return ''
else: return char
def get_my_string(file_path):
f=open(file_path,'r')
data=f.read()
f.close()
filtered_data=filter(onlyascii, data)
filtered_data = filtered_data.lower()
return filtered_data
如何修改onlyascii()以留下空格和句点?我想这不太复杂,但我想不出来。
根据@artfulrobot的说法,这应该比filter和lambda更快:
请参阅此处的更多示例http://stackoverflow.com/questions/20078816/replace-non-ascii-characters-with-a-single-space/20079244#20079244
使用encode()或decode()是更改为其他编解码器的简单方法。在您的示例中,您希望转换为ASCII并忽略所有不受支持的符号。例如,瑞典语字母å不是ASCII字符:
编辑:
Python3:str->;字节->;str
Python2:unicode->;str->;unicode
Python2:str->;unicode->;str(按相反顺序解码和编码)
可以使用string.printable筛选字符串中所有不可打印的字符,如下所示:
string.printable在我的机器上包含:
编辑:在Python 3上,filter将返回一个iterable。获取字符串的正确方法是:
相关问题 更多 >
编程相关推荐