第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用Python刪除非ASCII字符但保留句點和空格?

如何使用Python刪除非ASCII字符但保留句點和空格?

慕田峪9158850 2019-11-14 09:45:22
我正在使用.txt文件。我想要文件中沒有非ASCII字符的文本字符串。但是,我想留空格和句點。目前,我也正在剝離它們。這是代碼:def onlyascii(char):    if ord(char) < 48 or ord(char) > 127: return ''    else: return chardef 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()以保留空格和句點?我想這并不太復雜,但我無法弄清楚。
查看完整描述

3 回答

?
白板的微信

TA貢獻1883條經(jīng)驗 獲得超3個贊

您的問題不明確;前兩個句子加在一起表示您相信空格和“句點”是非ASCII字符。這是不正確的。等于ord(char)<= 127的所有字符都是ASCII字符。例如,您的函數(shù)不包括這些字符!“#$%&\'()* +,-。/,但包括其他幾個字符,例如[] {}。


請退后一步,三思而后行,然后編輯您的問題以告訴我們您要做什么,而無需提及ASCII單詞,以及為什么您認為ord(char)> = 128這樣的chars是可忽略的。另外:哪個版本的Python?輸入數(shù)據(jù)的編碼是什么?


請注意,您的代碼以單個字符串的形式讀取整個輸入文件,并且您對另一個答案的注釋(“最佳解決方案”)意味著您無需關(guān)心數(shù)據(jù)中的換行符。如果您的文件包含這樣的兩行:


this is line 1

this is line 2

結(jié)果將是'this is line 1this is line 2'……您真正想要的是什么?


更好的解決方案包括:


過濾器功能比一個更好的名字 onlyascii

認識到如果要保留參數(shù),則過濾器函數(shù)僅需要返回真實值:


def filter_func(char):

    return char == '\n' or 32 <= ord(char) <= 126

# and later:

filtered_data = filter(filter_func, data).lower()


查看完整回答
反對 回復 2019-11-14
  • 3 回答
  • 0 關(guān)注
  • 767 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號