1.牛牛的檔案提取器(6分)
牛牛在處理檔案的程序中發現了一個檔案提取器app,這個app可以讀取中英文混合的檔案,并且將里面的英文提取出來,寫成一個新的檔案,但是有一天他發現自己的app試用期已結束,用不了了,請幫他實作這個app的功能,讓他能夠快速地處理檔案。
uj5u.com熱心網友回復:
with open('input.txt') as fp:
string = fp.read()
with open('output.txt', 'w') as fp:
fp.write(''.join(char for char in string if ord(char) < 128))
可能需要在oepn函式引數里面加上encoding="utf-8"或encoding="gbk"指定檔案編碼
uj5u.com熱心網友回復:
沒明白。。大神uj5u.com熱心網友回復:
for回圈有個縮進的with open('input.txt',encoding='utf-8') as fp:
string = fp.read()
with open('output.txt', 'w') as fp:
fp.write(''.join(char for char in string if ord(char) < 128))
uj5u.com熱心網友回復:
串列推導式不需要縮進
uj5u.com熱心網友回復:
先讀取檔案的內容,再使用生成器運算式(char for char in string if ord(char) < 128)進行過濾(其中ord(char) < 128是條件),只剩下ascii英文字符,由于生成器運算式不回傳字串,所以使用''.join進行連接,轉為字串,再寫入輸出檔案
uj5u.com熱心網友回復:
先讀取檔案的內容,再使用生成器運算式(char for char in string if ord(char) < 128)進行過濾(其中ord(char) < 128是條件),只剩下ascii英文字符,由于生成器運算式不回傳字串,所以使用''.join進行連接,轉為字串,再寫入輸出檔案
uj5u.com熱心網友回復:
你是完全不懂還是那部分不懂。解題步驟我給你寫一下:
1.讀取文本()
2.過濾掉中文(正則運算式或者大神寫的這個)
3.過濾后的文字寫入文本
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/24859.html
