Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana Menapis Aksara Bukan ASCII Semasa Memelihara Ruang dan Tempoh dalam Python?

Bagaimana Menapis Aksara Bukan ASCII Semasa Memelihara Ruang dan Tempoh dalam Python?

Patricia Arquette
Patricia Arquetteasal
2024-10-19 20:33:29566semak imbas

How to Filter Non-ASCII Characters While Preserving Spaces and Periods in 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn