Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mengalih Keluar Baris Baharu dengan Cekap daripada Data Fail yang Dibaca dengan `readlines()` Python?

Bagaimanakah Saya Boleh Mengalih Keluar Baris Baharu dengan Cekap daripada Data Fail yang Dibaca dengan `readlines()` Python?

DDD
DDDasal
2024-12-16 03:29:10832semak imbas

How Can I Efficiently Remove Newlines from File Data Read with Python's `readlines()`?

Melucutkan Baris Baharu daripada Data Fail dalam Python

Apabila membaca fail dalam Python menggunakan kaedah readlines(), elemen senarai yang terhasil mengandungi baris baharu di penghujungnya. Untuk menghapuskan baris baharu ini, beberapa pendekatan tersedia.

Satu kaedah ialah menggunakan fungsi splitlines() rentetan untuk memisahkan baris pada baris baharu selepas membaca keseluruhan fail:

temp = file.read().splitlines()

Sebagai alternatif, anda boleh tanggalkan baris baharu secara manual:

temp = [line[:-1] for line in file]

Nota: Kaedah ini menganggap fail berakhir dengan baris baharu; jika tidak, baris terakhir akan dipotong.

Untuk memastikan kehadiran baris baharu yang tamat, anda boleh menambah satu secara manual:

with open(the_file, 'r+') as f:
    f.seek(-1, 2)
    if f.read(1) != '\n':
        f.write('\n')
        f.flush()
        f.seek(0)
    lines = [line[:-1] for line in f]

Pilihan lain ialah menggunakan strip() untuk mengalih keluar baris baharu :

[line.rstrip('\n') for line in file]

Untuk ringkasan, anda juga boleh menggunakan di bawah pendekatan:

[line[:-(line[-1] == '\n') or len(line)+1] for line in file]

Memahami readlines()

Kaedah readlines() berulang daripada readline(), yang merangkumi baris baharu. Oleh itu, begitu juga readlines(). Untuk ketekalan, writelines() tidak menambah baris baharu, memastikan salinan tepat dihasilkan apabila menggunakan kedua-dua kaedah.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengalih Keluar Baris Baharu dengan Cekap daripada Data Fail yang Dibaca dengan `readlines()` 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