Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana Menapis Aksara Bukan ASCII Semasa Memelihara Ruang dan Tempoh dalam Python?
Mengalih keluar Aksara Bukan ASCII Semasa Memelihara Ruang dan Tempoh
Dalam Python, anda mungkin menghadapi situasi di mana anda perlu menapis bukan ASCII aksara daripada rentetan sambil mengekalkan ruang dan noktah utuh. Kod yang disediakan untuk tujuan ini, dikenali sebagai onlyascii(), pada masa ini mengalih keluar semua aksara bukan ASCII, termasuk yang dikehendaki.
Untuk menangani isu ini, pertimbangkan untuk mengubah suai fungsi onlyascii() untuk memasukkan pengendalian khas untuk ruang dan tempoh. Satu pendekatan ialah menggunakan string.printable Python, yang mengandungi set aksara yang dianggap boleh dicetak, termasuk ruang dan noktah.
Dalam fungsi onlyascii(), anda boleh menapis aksara bukan ASCII sambil membenarkan ruang dan tempoh yang perlu dilalui dengan menyemak sama ada aksara itu berada dalam rentetan.set boleh cetak. Begini cara anda boleh melakukannya:
def onlyascii(char): if ((ord(char) < 48 or ord(char) > 127) and (char not in string.printable)): return '' else: return char
Dengan menambahkan aksara bukan dalam keadaan string.printable pada pernyataan if, anda memastikan ruang dan noktah dikekalkan, walaupun ia berada di luar julat ASCII. Menggabungkan pengubahsuaian ini ke dalam fungsi get_my_string(), anda kini boleh menapis aksara bukan ASCII sambil mengekalkan ruang dan noktah:
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
Atas ialah kandungan terperinci Bagaimana Menapis Aksara Bukan ASCII Semasa Memelihara Ruang dan Tempoh dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!