Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Membaca Fail dalam Python Tanpa Aksara Baris Baharu?

Bagaimanakah Saya Boleh Membaca Fail dalam Python Tanpa Aksara Baris Baharu?

Barbara Streisand
Barbara Streisandasal
2024-12-16 18:30:12635semak imbas

How Can I Read a File in Python Without Newline Characters?

Membaca Fail Tanpa Baris Baharu

Kaedah open(nama fail,'r').readlines() Python menyediakan senarai baris daripada fail, tetapi setiap elemen termasuk watak baris baharu. Untuk mendapatkan semula data tanpa aksara ini, beberapa pendekatan tersedia.

Menggunakan str.splitlines()

Satu kaedah ialah membaca keseluruhan fail dan memisahkan baris menggunakan str.splitlines:

temp = file.read().splitlines()

Melucutkan Talian Baharu Secara Manual

Sebagai alternatif, anda boleh menanggalkan baris baharu daripada setiap baris secara manual:

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

Nota: Pendekatan ini menganggap fail berakhir dengan baris baharu; jika tidak, baris terakhir akan kehilangan aksara.

Mengendalikan Baris Baharu Akhir Fail

Untuk mengelakkan isu ini, anda boleh menambahkan baris baharu pada penghujung fail jika tiada:

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]

Atau, lebih ringkas, tanggalkan baris baharu:

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

Pelaksanaan baris baca yang setara

Kaedah baris baca secara berkesan meniru kod berikut:

def readlines(self):
    lines = []
    for line in iter(self.readline, ''):
        lines.append(line)
    return lines

Oleh itu, readlines() juga mengekalkan aksara baris baharu yang dibaca oleh readline().

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membaca Fail dalam Python Tanpa Aksara Baris Baharu?. 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