Jadual Kandungan
Konsep teras dan langkah pelaksanaan
1. Bacaan fail yang selamat dan cekap: Gunakan dengan terbuka ()
2. Menganalisis garis data teks demi baris
3. Segmentasi String: Ekstrak Label dan Nilai
4. Penukaran dan Pengumpulan Pengumpulan Berangka
5. Output Hasil
Contoh kod lengkap
Nota dan amalan terbaik
Meringkaskan
Rumah pembangunan bahagian belakang Tutorial Python Gunakan python untuk memproses data teks berlabel dan melakukan pengiraan berangka

Gunakan python untuk memproses data teks berlabel dan melakukan pengiraan berangka

Aug 08, 2025 am 07:42 AM

Gunakan python untuk memproses data teks berlabel dan melakukan pengiraan berangka

Artikel ini akan membimbing anda bagaimana untuk menghuraikan fail teks berstruktur menggunakan Python, seperti data yang mengandungi format "Tag: Nombor Senarai". Tutorial meliputi bacaan yang selamat dari fail, pemprosesan line-by-line, segmentasi rentetan (melalui kolon dan koma), menukar nilai rentetan ke dalam bilangan bulat, dan operasi penjumlahan numerik akhir. Melalui tutorial ini, anda akan menguasai kemahiran teras memproses data teks tersebut untuk mencapai pengekstrakan dan pengiraan data yang cekap.

Dalam tugas pemprosesan data, kita sering perlu mengekstrak dan mengira data dari fail teks yang tidak berstruktur atau separa berstruktur. Sebagai contoh, fail log mungkin mengandungi tag untuk peristiwa tertentu dan maklumat berangka yang berkaitan. Tutorial ini akan mengambil senario biasa sebagai contoh: bagaimana untuk menghuraikan baris data mengikut baris dari fail .txt yang mengandungi format "Tarikh/Tag: Nilai 1, Nilai 2, Nilai 3, dan jumlah nilai di bawah setiap tag.

Konsep teras dan langkah pelaksanaan

Kunci untuk mengendalikan data teks tersebut adalah membaca fail dengan betul, segmen rentetan dengan tepat, menukar nilai teks ke dalam jenis angka yang boleh dihitung, dan jumlahnya.

1. Bacaan fail yang selamat dan cekap: Gunakan dengan terbuka ()

Apabila memproses fail, adalah penting untuk memastikan bahawa fail ditutup dengan betul selepas operasi selesai, walaupun ralat berlaku. Pernyataan Python dengan menyediakan cara yang ringkas dan selamat untuk menguruskan sumber fail, yang secara automatik mengendalikan pembukaan dan penutupan fail secara automatik.

 dengan terbuka ('tb1.txt', 'r', encoding = 'utf-8') sebagai fail:
    # Operasi fail akan diluluskan di sini

Di sini, 'tb1.txt' adalah nama fail yang akan dibaca, dan 'r' bermaksud membuka fail dalam mod baca sahaja. Pengekodan = 'UTF-8' adalah amalan yang baik apabila mengendalikan fail teks, terutamanya apabila berurusan dengan fail yang mengandungi aksara bukan ASCII. sebagai fail memberikan objek fail ke fail pembolehubah.

2. Menganalisis garis data teks demi baris

Objek fail itu boleh dimakan, yang bermaksud kita boleh menggunakannya secara langsung di dalam gelung untuk membaca baris kandungan fail mengikut baris tanpa secara manual memanggil ReadLine () atau readlines ().

 dengan terbuka ('tb1.txt', 'r', encoding = 'utf-8') sebagai fail:
    untuk talian dalam fail:
        #Every Time Pembolehubah baris akan mengandungi garis dalam fail# Keluarkan garis pecah dan kemungkinan kosong di hujung baris garis = line.strip ()
        jika tidak garis: # langkau garis kosong teruskan
        # Pemprosesan berikutnya ...

Kaedah ini mudah dan cekap, terutamanya sesuai untuk mengendalikan fail besar. line.strip () digunakan untuk menghapuskan aksara ruang putih pada permulaan dan akhir garis, termasuk garis baru, yang penting untuk segmentasi rentetan berikutnya.

3. Segmentasi String: Ekstrak Label dan Nilai

Menurut fail contoh Isnin: 12, 34, -90, setiap baris data terdiri daripada label dan satu siri nilai angka, dipisahkan oleh kolon:. Nilai dipisahkan oleh koma. Kami memerlukan dua operasi segmentasi untuk mengekstrak maklumat yang diperlukan.

Pertama, gunakan str.split (':') untuk memecah garisan menjadi dua bahagian: label dan rentetan yang mengandungi nilai angka. Untuk mengelakkan masalah apabila label itu sendiri mengandungi kolon, disyorkan untuk menggunakan maxSplit = 1.

 label, fields_str = line.split (':', 1)
label = label.strip () # keluarkan kosong di kedua -dua hujung label

Label akan mendapat rentetan seperti "Isnin", dan fields_str akan mendapat "12,34, -90" (perhatikan bahawa mungkin ada ruang).

Seterusnya, gunakan str.split (',') untuk fields_str untuk mendapatkan senarai rentetan angka yang berasingan.

 value_str_list = fields_str.split (',')

Ini akan mendapat senarai seperti ['12', '34', '-90'].

4. Penukaran dan Pengumpulan Pengumpulan Berangka

Setiap elemen yang diambil dari nilai_str_list adalah jenis rentetan. Sebelum pengiraan matematik, mereka mesti ditukar kepada jenis angka (seperti integer int atau float).

 current_sum = 0
untuk nilai_str dalam nilai_str_list:
    # Keluarkan aksara ruang putih yang mungkin dan tukarnya ke integer numeric_value = int (value_str.strip ())
    current_sum = Numeric_value

Kaedah str.strip () berfungsi semula di sini untuk menghapuskan aksara ruang putih di kedua -dua hujung rentetan, memastikan kejayaan penukaran Int ().

5. Output Hasil

Selepas menjumlahkan nilai setiap baris, kita boleh mencetak label dan jumlah yang sepadan untuk melihat hasilnya.

 cetak (f "{label}: {current_sum}")

Output diformat digunakan di sini, yang ringkas dan jelas.

Contoh kod lengkap

Mengintegrasikan langkah -langkah di atas dan tambahkan mekanisme pengendalian ralat untuk membina fungsi yang mantap untuk mengendalikan fail:

 DEF mengira_SUMS_FROM_FILE (filePath):
    "" "
    Baca data dari fail yang ditentukan, huruskan setiap baris dan hitung jumlah nilai berangka.

    Args:
        FilePath (STR): Laluan fail teks yang belum selesai.
    "" "
    Cuba:
        dengan buka (filePath, 'r', encoding = 'UTF-8') sebagai fail:
            cetak (f "pemprosesan fail: {filePath} \ n ---")
            Untuk line_num, baris dalam penghitungan (fail, 1):
                line = line.strip () # Keluarkan rehat dan kekosongan talian di hujung baris jika tidak garis: # langkau garis kosong terus

                Cuba:
                    # 1. Pecahkan label dan bahagian berangka# gunakan maxSplit = 1 untuk mengelakkan masalah yang mengandungi kolon dalam label label, fields_str = line.split (':', 1)
                    label = label.strip () # Keluarkan tempat kosong di kedua -dua hujung label # 2. Pecahkan rentetan angka dan tukarnya ke dalam nilai integer_str_list = fields_str.split (',')
                    current_sum = 0
                    untuk nilai_str dalam nilai_str_list:
                        numeric_value = int (value_str.strip ()) # Keluarkan tempat kosong dan tukar current_sum = numeric_value

                    # 3. Output Result Print (f "{label}: {current_sum}")

                Kecuali ValueError sebagai E:
                    cetak (f "ralat: nilai dalam data dalam baris {line_num} tidak boleh ditukar. Kandungan: '{line}' Mesej ralat: {e}")
                Kecuali indeksror:
                    cetak (f "ralat: pemisah kolon atau bahagian angka hilang pada baris {line_num}. Kandungan: '{line}'")
                Kecuali pengecualian sebagai e:
                    cetak (f "ralat: ralat yang tidak diketahui berlaku pada baris {line_num}. Kandungan: '{line}' Mesej ralat: {e}")

    Kecuali FileNotFoundError:
        cetak (f "ralat: fail '{filePath}' tidak dijumpai. Sila periksa laluan fail.")
    Kecuali pengecualian sebagai e:
        cetak (f "ralat tidak diketahui berlaku semasa memproses fail: {e}")

# Contoh Gunakan:
# Pertama, pastikan untuk membuat fail bernama 'tb1.txt' dalam direktori yang sama di mana kod sedang berjalan.
# dan isi berikut untuk ujian:
"" "
Isnin: 12,34, -90
Sabtu: 32, -23,20
Selasa: 1,2,3,4,5
Rabu: -10,20
InvalidlineWithoutColon
Satu lagi hari: 10, ABC, 20
"" "
# Anda boleh membuat fail ujian melalui coretan kod berikut:
# dengan terbuka ('tb1.txt', 'w', encoding = 'utf-8') sebagai f:
# f.write ("Isnin: 12,34, -90 \ n")
# f.write ("Sabtu: 32, -23,20 \ n")
# f.write ("Selasa: 1,2,3,4,5 \ n")
# f.write ("Rabu: -10,20 \ n")
# f.write ("InvalidLineWithoutColon \ n")
# f.write ("More Day: 10, ABC, 20 \ n")
# f.write ("\ n") # Ujian talian kosong CALLULE_SUMS_FROM_FILE ('TB1.TXT')

Nota dan amalan terbaik

  • Kepentingan dengan pernyataan : Sentiasa gunakan dengan terbuka (...) untuk memproses fail, yang dapat memastikan bahawa fail itu ditutup secara automatik setelah operasi selesai, dan dapat mencegah kebocoran sumber secara efektif jika pengecualian terjadi dalam program.
  • Keperluan untuk Penukaran Jenis Data : Data yang dibaca dari fail teks adalah jenis rentetan secara lalai. Sebelum melakukan apa -apa pengiraan matematik, ia mesti ditukar kepada jenis angka menggunakan int () atau float ().
  • Pengendalian ralat : Dalam aplikasi praktikal, kandungan fail mungkin tidak selalu mematuhi format yang diharapkan. Menggunakan blok percubaan untuk menangkap ValueError (apabila rentetan tidak boleh ditukar kepada nombor) atau indeksror (apabila format garis tidak sepadan dengan jangkaan, seperti kehilangan kolon atau koma), ia boleh menjadikan program itu lebih mantap dan mengelakkan kemalangan kerana data yang luar biasa.
  • Penggunaan str.strip () : Sebelum melakukan segmentasi rentetan dan penukaran jenis, ia adalah kebiasaan yang baik untuk menggunakan kaedah jalur () untuk menghapuskan aksara ruang putih (termasuk ruang, tab dan garis baru) di kedua -dua hujung rentetan, dan boleh mengelakkan ralat penukaran yang disebabkan oleh whitespace yang tidak dijangka.
  • Parameter MaxSplit Kaedah Split () : Apabila menggunakan kaedah Split (), jika pembatas mungkin muncul di pelbagai lokasi rentetan sasaran, dan anda hanya mahu berpecah apabila kejadian pertama, menggunakan parameter maxSplit (seperti line.split (':', 1)) dapat meningkatkan ketepatan parsing.

Meringkaskan

Tutorial ini menerangkan cara untuk memproses data teks berstruktur dengan cekap dan selamat menggunakan Python. Dengan menguasai kemahiran teras seperti bacaan fail, segmentasi rentetan, penukaran jenis, dan pengendalian ralat, anda kini boleh dengan yakin mengekstrak dan mengira nilai yang diperlukan dari pelbagai fail teks. Kemahiran asas ini adalah asas untuk analisis dan pemprosesan data yang lebih kompleks, dan sangat berguna untuk tugas -tugas seperti analisis log dan pembersihan data.

Atas ialah kandungan terperinci Gunakan python untuk memproses data teks berlabel dan melakukan pengiraan berangka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT

Stock Market GPT

Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara memasang pakej dari fail keperluan.txt di python Cara memasang pakej dari fail keperluan.txt di python Sep 18, 2025 am 04:24 AM

Jalankan pipinstall-rrequirements.txt untuk memasang pakej ketergantungan. Adalah disyorkan untuk mencipta dan mengaktifkan persekitaran maya terlebih dahulu untuk mengelakkan konflik, memastikan bahawa laluan fail adalah betul dan PIP telah dikemas kini, dan menggunakan pilihan seperti-tidak-deps atau-pengguna untuk menyesuaikan tingkah laku pemasangan jika perlu.

Strategi penggabungan yang cekap bagi penyesuai dan model asas PEFT Lora Strategi penggabungan yang cekap bagi penyesuai dan model asas PEFT Lora Sep 19, 2025 pm 05:12 PM

Tutorial ini memperincikan bagaimana untuk menggabungkan penyesuai LORA PEFT dengan model asas untuk menghasilkan model yang sepenuhnya bebas. Artikel ini menunjukkan bahawa adalah salah untuk menggunakan transformer.automodel secara langsung untuk memuatkan penyesuai dan menggabungkan berat secara manual, dan menyediakan proses yang betul untuk menggunakan kaedah Merge_and_unload di perpustakaan PEFT. Di samping itu, tutorial juga menekankan pentingnya menangani segmen perkataan dan membincangkan isu dan penyelesaian keserasian versi PEFT.

Cara Menguji Kod Python dengan Pytest Cara Menguji Kod Python dengan Pytest Sep 20, 2025 am 12:35 AM

Python adalah alat ujian yang mudah dan berkuasa di Python. Selepas pemasangan, fail ujian ditemui secara automatik mengikut peraturan penamaan. Tulis fungsi bermula dengan ujian untuk ujian pernyataan, gunakan @pytest.fixture untuk membuat data ujian yang boleh diguna semula, mengesahkan pengecualian melalui pytest.raises, menyokong menjalankan ujian tertentu dan pelbagai pilihan baris arahan, dan meningkatkan kecekapan ujian.

Masalah Ketepatan Nombor Titik Terapung di Python dan Skim Pengiraan Ketepatan Tinggi Masalah Ketepatan Nombor Titik Terapung di Python dan Skim Pengiraan Ketepatan Tinggi Sep 19, 2025 pm 05:57 PM

Artikel ini bertujuan untuk meneroka masalah biasa ketepatan pengiraan yang tidak mencukupi bagi nombor titik terapung di Python dan Numpy, dan menjelaskan bahawa punca akarnya terletak pada batasan perwakilan nombor terapung 64-bit standard. Untuk senario pengkomputeran yang memerlukan ketepatan yang lebih tinggi, artikel itu akan memperkenalkan dan membandingkan kaedah penggunaan, ciri-ciri dan senario yang berkenaan dengan perpustakaan matematik ketepatan tinggi seperti MPMATH, SYMPY dan GMPY untuk membantu pembaca memilih alat yang tepat untuk menyelesaikan keperluan ketepatan yang rumit.

Cara Mengendalikan Argumen Barisan Perintah di Python Cara Mengendalikan Argumen Barisan Perintah di Python Sep 21, 2025 am 03:49 AM

TheargParsemoduleisThereMendingWayOhandLecommand-lineargumentsinpython, menyediakan robrobustparsing, typevalidation, helpmessages, anderrorhandling; usesy.argvforsimplecasesrequiringminiminalsetup.

Cara bekerja dengan fail pdf di python Cara bekerja dengan fail pdf di python Sep 20, 2025 am 04:44 AM

PYPDF2, PDFPlumber dan FPDF adalah perpustakaan teras untuk Python untuk memproses PDF. Gunakan pypdf2 untuk melakukan pengekstrakan teks, penggabungan, pemisahan dan penyulitan, seperti membaca halaman melalui pdfreader dan memanggil extract_text () untuk mendapatkan kandungan; PDFplumber lebih sesuai untuk mengekalkan pengekstrakan teks susun atur dan pengiktirafan jadual, dan menyokong extract_tables () untuk menangkap data jadual dengan tepat; FPDF (disyorkan FPDF2) digunakan untuk menjana PDF, dan dokumen dibina dan dikeluarkan melalui add_page (), set_font () dan sel (). Apabila menggabungkan PDF, kaedah tambahan PDFWriter () dapat mengintegrasikan pelbagai fail

Python Dapatkan Contoh Masa Semasa Python Dapatkan Contoh Masa Semasa Sep 15, 2025 am 02:32 AM

Mendapatkan masa semasa boleh dilaksanakan di Python melalui modul DateTime. 1. Gunakan datetime.now () untuk mendapatkan masa semasa tempatan, 2. Gunakan strftime ("%y-%m-%d%h:%m:%s") untuk memformat tahun, bulan, hari, jam, minit dan kedua, 3 menggunakan datetime.d. UTCNOW (), dan operasi harian dapat memenuhi keperluan dengan menggabungkan datetime.now () dengan rentetan yang diformat.

Integrasi Cekap Data Multi-File Menggunakan Pandas: Tutorial Persatuan IP, Mac dan Pelabuhan Integrasi Cekap Data Multi-File Menggunakan Pandas: Tutorial Persatuan IP, Mac dan Pelabuhan Sep 21, 2025 pm 03:00 PM

Tutorial ini menunjukkan secara terperinci bagaimana untuk mengekstrak, mengaitkan, dan mengintegrasikan data tertentu dengan cekap dari pelbagai fail teks menggunakan perpustakaan Python's Pandas. Dengan memuatkan data fail ke dalam data data dan menggunakan operasi gabungan untuk melaksanakan sambungan dalaman berdasarkan alamat IP dan alamat MAC, pelaksanaan akhir yang tepat padanan dan mengeluarkan maklumat persatuan IP, alamat MAC dan port yang sepadan dari fail dari sumber yang berbeza.

See all articles