Cara mengambil input dari file lain dengan python

Sejauh ini dalam rangkaian pengenalan bahasa pemrograman Python ini, kita telah mempelajari beberapa trik dasar Python yang cukup keren. Kami telah mempelajari apa yang membuat bahasa ini istimewa, mempelajari tentang konsol Python dan menggunakan variabel, dan mempelajari cara menerima input dari pengguna

Dengan pengetahuan itu, kami telah membuat beberapa program kecil yang menarik yang mengilustrasikan bagaimana fitur-fitur ini bekerja di Python, tetapi aplikasi itu sendiri tidak melakukan banyak hal selain membuktikan kepada teman dan keluarga Anda bahwa Anda dapat mempelajari bahasa pemrograman.

Kali ini kita akan membuat sebuah program yang menggunakan banyak dari apa yang telah kita pelajari menambahkan beberapa bit baru dan menggabungkan semuanya untuk membuat sebuah program yang dapat mengambil masukan dari pengguna dan menyimpannya ke file. Ini bisa berguna jika Anda ingin melacak daftar hal-hal tetapi tidak selalu ingin membuka file untuk melakukannya. Selain itu, ini adalah trik penting saat Anda melakukan pekerjaan Python yang lebih canggih. Jadi ini mirip dengan Aljabar di sekolah menengah… Anda akan menggunakannya di kemudian hari

Benar?

Bagus

Bagaimanapun, mari kita lanjutkan pertunjukannya

Sekali lagi, saya akan mendemonstrasikan proses ini di Linux. Namun, ini akan berfungsi pada sistem operasi apa pun yang mendukung Python. Namun, jika Anda bekerja pada OS yang berbeda, Anda mungkin harus menyesuaikan di sana-sini jika hal-hal tidak berjalan seperti yang diharapkan (seharusnya)

Kami akan mengambil langkah ini satu per satu. Hal pertama yang perlu Anda pelajari adalah cara menulis data ke file. Untuk melakukan ini, kita harus membuka file (dari dalam Python) dalam apa yang disebut mode akses. Ada tiga mode berbeda untuk ini

  • Tulis saja (w) – membuka file untuk ditulis
  • Tulis dan Baca (w+) – membuka file untuk menulis dan membaca
  • Append Only (a) – membuka file untuk ditulis. Jika file tidak ada, itu dibuat

Kami akan fokus pada mode tulis dan tambahkan. Pertama, mode tulis. Untuk melakukan ini, kami menggunakan fungsi open(). Katakanlah kita ingin menulis "Halo, Tumpukan Baru" ke file bernama teks. txt. Pertama, buat file dengan

touch text.txt_

File itu sekarang dapat ditulis dengan mode hanya-tulis

Buat skrip python baru dengan

nano write.py

Hal pertama yang kami tambahkan ke file adalah baris untuk menunjukkan bahwa kami sedang membuka teks. txt dalam mode tulis-saja. Garis itu akan terlihat seperti ini

file1 = open('text.txt', 'w')

Ingat variabel apa itu? . txt dalam mode tulis. Kami kemudian dapat menggunakan variabel itu di dua baris file berikutnya

Baris kedua menulis string Hello, New Stack. ke file dan terlihat seperti ini

file1.write("Hello, New Stack!")_

Baris di atas menggunakan variabel yang sama (file1), dengan fungsi baru (write()) untuk menulis string ke file. Baris terakhir akan menutup file dan terlihat seperti ini

file1.close()_

Jadi skrip lengkap kami terlihat seperti ini

#Buka teks. txt dalam mode tulis

file1 = buka('teks. txt', 'w')

#Tulis string "Halo, Stack Baru. " ke berkas

file1. write("Halo, Tumpukan Baru. ")


Ingat, semua yang dimulai dengan karakter # adalah komentar. Kami mengomentari berbagai hal sehingga kami tahu apa yang terjadi dalam kode

Simpan dan tutup file. Jalankan skrip dengan

python3 write.py

Jika Anda melihat isi teks. txt, Anda akan melihatnya berisi baris Hello, New Stack di bagian atas. Jika Anda menjalankannya lagi, skrip akan mengganti “Hello, New Stack” dengan “Hello, New Stack. " di atas. Dengan kata lain, skrip kami hanya menimpa baris pertama dalam teks. txt

Itu semua bagus dan bagus, tetapi kecuali Anda hanya perlu menyimpan satu baris teks, itu tidak terlalu praktis. Di situlah mode Tambahkan Saja berguna. Jadi mari kita buat sedikit perubahan. Alih-alih membuka file1 dalam mode Tulis Saja, kami akan membukanya dalam mode Tambahkan. Skrip itu terlihat hampir identik dengan yang pertama

#Buka teks. txt dalam mode tulis

file1 = buka('teks. txt', 'a')

#Tulis string "Halo, Stack Baru. " ke berkas

file1. write("Halo, Tumpukan Baru. ")


Tempat perbedaan?

Sekarang, jika Anda menjalankan tulis python3. py perintah itu akan menambahkan Hello, New Stack. sampai akhir baris pertama. Jalankan beberapa kali dan Anda akan mendapatkan file yang terlihat seperti ini

Halo, Tumpukan Baru. Halo, Tumpukan Baru. Halo, Tumpukan Baru. Halo, Tumpukan Baru


Lebih baik, tetapi masih belum ideal. Yang ingin kami lakukan adalah membuat skrip yang akan menambahkan baris baru di bawah baris sebelumnya. Untuk melakukan itu, kami menambahkan pelarian baris baru yaitu \n. Jadi sekarang fungsi write()_ kita akan terlihat seperti ini

touch text.txt_0

Jika Anda menjalankan skrip dengan fungsi write() itu beberapa kali, isi teksnya. File txt akan terlihat seperti ini


Sekarang mari ubah ini menjadi aplikasi aktual yang akan menerima input dari pengguna dan menulis input ke file. Ingat, dari tutorial kami sebelumnya, bagian ini

print("Siapa nama depan Anda?")

print("Siapa nama belakang Anda?")


Kami akan menggunakannya kembali untuk menanyakan nama depan dan belakang pengguna. Tentu saja, untuk memformatnya dengan benar, kita perlu menggunakan beberapa trik

Kami telah mendefinisikan variabel kami untuk nama depan (input1) dan nama belakang (input2). Sekarang kita harus menuliskannya ke file dalam mode tambahkan dengan baris

touch text.txt_1

Selanjutnya, kami menulis isi variabel (melalui input pengguna) dan memformatnya sedemikian rupa sehingga ada spasi antara nama depan dan belakang dan baris baru kembali setelah nama belakang. Jika kami tidak menambahkan opsi pemformatan tersebut, file teks kami akan berakhir seperti

JackWallenOliviaNightingaleWilJackson


Kami tidak menginginkan itu. Apa yang kita inginkan adalah


Jadi bagian itu terlihat seperti ini


Seperti yang Anda lihat, kami telah menambahkan spasi di antara nama dengan touch text.txt2 dan baris baru kembali dengan touch text.txt3

Seluruh skrip kita sekarang terlihat seperti

#Ambil input dari pengguna dan tetapkan ke variabel

print("Siapa nama depan Anda?")

print("Siapa nama belakang Anda?")

#Buka teks. txt file untuk menambahkan

file1 = buka('teks. txt', 'a')

#Tulis konten variabel ke teks. txt


Saat kita sekarang menjalankan touch text.txt4 beberapa kali (memasukkan nama yang berbeda), skrip akan menulis ke file persis seperti yang kita inginkan

Dan begitulah. Anda telah membuat aplikasi Python sederhana yang menerima input pengguna dan menuliskannya ke file. Berkreasilah dengan ini dan lihat berapa banyak kasus penggunaan yang dapat Anda terapkan

Bagaimana cara membaca input dari file dengan python?

Ada 6 mode akses di python. .
Hanya Baca ('r'). Buka file teks untuk dibaca. .
Baca dan Tulis ('r+'). Buka file untuk membaca dan menulis. .
Tulis Saja ('w'). Buka file untuk menulis. .
Tulis dan Baca ('w+'). Buka file untuk membaca dan menulis. .
Tambahkan Hanya ('a'). Buka file untuk menulis

Bagaimana Anda mengambil input dari file?

Untuk membaca informasi dari file, atau menulis informasi ke file, program Anda harus melakukan tindakan berikut. .
Buat variabel untuk mewakili file
Buka file dan simpan "file" ini dengan variabel file
Gunakan fungsi fprintf atau fscanf untuk menulis/membaca dari file