Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengeluarkan Aksara Bukan ASCII sambil Mengekalkan Tempoh dan Ruang?

Bagaimana untuk Mengeluarkan Aksara Bukan ASCII sambil Mengekalkan Tempoh dan Ruang?

DDD
DDDasal
2024-10-19 20:37:29987semak imbas

How to Remove Non-ASCII Characters while Preserving Periods and Spaces?

Mengalih keluar Aksara Bukan ASCII sambil Mengekalkan Tempoh dan Ruang

Matlamatnya adalah untuk memproses data teks yang disimpan dalam fail .txt dan mengekstrak a rentetan tanpa sebarang aksara bukan ASCII, sambil mengekalkan kedua-dua ruang dan noktah. Untuk mencapai ini, kod yang disediakan mentakrifkan fungsi onlyascii() yang menentukan sama ada aksara perlu disertakan dengan menyemak nilai ASCIInya. Walau bagaimanapun, pada masa ini ia turut mengalih keluar noktah dan ruang.

Untuk mengubah suai onlyascii() untuk mengecualikan tempoh dan ruang, kami boleh memanfaatkan modul string.printable Python. string.printable mengandungi set aksara yang dianggap boleh dicetak, termasuk ruang dan noktah.

Takrifan onlyascii() yang dikemas kini menggunakan string.printable ialah:

def onlyascii(char):
    if ord(char) < 48 or ord(char) > 127 or char not in string.printable:
        return ''
    else:
        return char

Dengan memasukkan semakan ini ke dalam onlyascii(), aksara yang tidak boleh dicetak, tidak termasuk ruang dan noktah, akan ditapis keluar.

Berikut ialah kod yang diperbetulkan dengan fungsi onlyascii() yang dikemas kini:

def onlyascii(char):
    if ord(char) < 48 or ord(char) > 127 or char not in string.printable:
        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

Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Aksara Bukan ASCII sambil Mengekalkan Tempoh dan Ruang?. 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