我怎样才能删除 ASCII 字符,但留下积分和空格 Python?
我与文件一起工作 .txt. 我需要一串文本从文件中没有符号以外的符号 ASCII. 但是,我想留下差距和积分。 目前我也脱衣服了。 这段代码:
我应该如何改变 onlyascii//, 留下空间和积分? 我认为这不是太难,但我无法理解它。
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//, 留下空间和积分? 我认为这不是太难,但我无法理解它。
没有找到相关结果
已邀请:
7 个回复
裸奔
赞同来自:
http://docs.python.org/library ... table
, 例如::
string.printable 在我的车上包含:
快网
赞同来自:
编辑
:
Python3: str - > 字节 - > str
Python2: unicode - > str - > unicode
Python2: str - > unicode - > str /以相反的顺序解码和编码/
奔跑吧少年
赞同来自:
re.sub/r'[^\x00-\x7f]',r'', your-non-ascii-string/
在这里查看更多例子。
https://coderoad.ru/20078816/
知食
赞同来自:
请退后一步,想一想一下并编辑你的问题,告诉我们你想要做什么,没有提到这个词 ASCII, 为什么你认为符号是这样的 ord/char/ >= 128 忽视。 还有:什么版本 Python? 输入数据的编码是什么?
请注意,您的代码将整个输入文件读为一行,以及您的评论 /"完美的解决方案"/ 另一个答案意味着您不关心数据中的新行。 如果您的文件包含两行:
结果,事实证明
... 这就是你真正想要的?
更广泛的决定将包括:
过滤功能的更合适的名称
识别过滤器功能只需返回事实必须保存参数时的值:
龙天
赞同来自:
这将回来
123456790 ABC#%? .//
喜特乐
赞同来自:
这是相同的
/回答 @jterrace/, 除了缺乏回报和标签 /'\t', '\n', '\x0b', '\x0c ' 和 '\r'/, 但与您的问题的范围不符。
莫问
赞同来自:
理解列表 one-ish-liners 受到头部的启发 2: