Pengendalian fail ialah salah satu aspek yang paling penting dalam bekerja dengan Python. Sama ada anda membaca dokumen teks, menulis log, memproses fail CSV atau menyimpan data, memahami cara bekerja dengan fail adalah penting. Nasib baik, Python memudahkannya dengan fungsi terbina dalam yang membolehkan anda membuat, membuka, membaca, menulis dan memanipulasi fail tanpa berpeluh.
Dalam artikel ini, kami akan menyelami asas pengendalian fail dalam Python, merangkumi segala-galanya daripada membuka fail kepada menangani format fail biasa seperti CSV dan JSON. Kami juga akan berkongsi petua tentang bekerja dengan cekap dengan fail besar dan memastikan anda mengendalikan fail dengan selamat. Pada akhirnya, anda akan berasa yakin menggunakan Python untuk mengurus fail dalam projek anda.
Apa yang Kami Akan Liput:
Apabila anda bekerja dengan fail, langkah pertama ialah membuka fail. Dalam Python, ini dilakukan menggunakan fungsi open(), yang mengambil dua hujah utama: nama fail dan mod di mana anda ingin membuka fail (seperti baca "r", tulis "w", atau tambahkan "a" ). Sebaik sahaja anda selesai, adalah penting untuk menutup fail untuk mengosongkan sumber.
Contoh:
# Open a file in write mode file = open("example.txt", "w") # Write some content to the file file.write("Hello, World!") # Always close the file after you're done to free up system resources file.close()
Penjelasan:
open("example.txt", "w"): Membuka fail example.txt dalam mod tulis. Jika fail itu tidak wujud, Python akan menciptanya. Jika ia wujud, ia akan ditimpa.
file.write("Hello, World!"): Menulis rentetan "Hello, World!" ke fail.
file.close(): Menutup fail, yang diperlukan untuk memastikan semua perubahan disimpan dan sumber dikeluarkan.
Amalan yang lebih baik: Menggunakan pernyataan dengan
Pernyataan with menutup fail secara automatik apabila anda selesai, jadi anda tidak perlu memanggil close() secara eksplisit.
with open("example.txt", "w") as file: file.write("Hello, World!") # The file is automatically closed here, even if an error occurs
Penjelasan:
Pernyataan dengan memastikan bahawa fail ditutup secara automatik selepas blok kod dilaksanakan, walaupun ralat berlaku di dalam blok. Ini menghalang kehilangan data secara tidak sengaja atau kebocoran sumber.
Terdapat pelbagai cara untuk membaca daripada fail dalam Python, bergantung pada sama ada anda mahu membaca keseluruhan fail sekaligus atau memprosesnya baris demi baris.
Contoh (membaca keseluruhan fail):
with open("example.txt", "r") as file: content = file.read() # Read the entire file at once print(content)
Penjelasan:
open("example.txt", "r"): Membuka fail dalam mod baca ("r").
file.read(): Membaca keseluruhan kandungan fail ke dalam kandungan berubah. Ini sesuai untuk fail kecil tetapi boleh menjadi tidak cekap untuk fail besar.
cetak(kandungan): Mengeluarkan kandungan ke konsol.
Contoh (membaca baris demi baris dengan cekap):
# Open a file in write mode file = open("example.txt", "w") # Write some content to the file file.write("Hello, World!") # Always close the file after you're done to free up system resources file.close()
Penjelasan:
Gelung untuk baris dalam fail membaca fail baris demi baris, menjadikannya cekap memori untuk fail besar.
line.strip(): Mengalih keluar mana-mana ruang putih di hadapan/mengekor atau aksara baris baharu daripada setiap baris sebelum mencetak.
Untuk menulis data pada fail, kami menggunakan mod "w" atau "a". Mod "w" menimpa fail, manakala "a" ditambahkan pada kandungan sedia ada.
Contoh (menulis pada fail):
with open("example.txt", "w") as file: file.write("Hello, World!") # The file is automatically closed here, even if an error occurs
Penjelasan:
open("example.txt", "w"): Membuka fail dalam mod tulis, yang mencipta fail jika ia tidak wujud atau memadamkan kandungan jika ada.
file.write(): Menulis rentetan pada fail. Anda boleh memasukkan n untuk baris baharu jika perlu.
Contoh (tambahan pada fail):
with open("example.txt", "r") as file: content = file.read() # Read the entire file at once print(content)
Penjelasan:
open("example.txt", "a"): Membuka fail dalam mod tambahan ("a"), yang bermaksud data baharu akan ditambahkan pada penghujung fail tanpa memadamkan kandungan sedia ada.
file.write("nIni akan ditambahkan pada penghujung."): Menulis baris baharu di hujung fail, menambah n untuk beralih ke baris baharu.
Apabila bekerja dengan fail bukan teks seperti imej, video atau data binari lain, anda perlu menggunakan mod binari ("rb" untuk membaca, "wb" untuk menulis).
Contoh (membaca fail binari):
with open("example.txt", "r") as file: for line in file: # Loop through each line in the file print(line.strip()) # Remove trailing newline characters and print the line
Penjelasan:
open("image.jpg", "rb"): Membuka fail dalam mod baca binari ("rb"), yang diperlukan untuk data binari.
binary_file.read(): Membaca keseluruhan kandungan binari fail.
binary_data[:10]: Menunjukkan 10 bait pertama fail. Ini berguna untuk melihat pratonton atau memproses data binari dalam ketulan.
Apabila bekerja dengan fail, ralat seperti fail hilang atau isu kebenaran boleh berlaku. Anda boleh menangani ralat ini dengan anggun menggunakan blok cuba kecuali.
Contoh:
with open("example.txt", "w") as file: file.write("Writing a new line of text.")
Penjelasan:
Sekatan cubaan cuba membuka dan membaca fail yang mungkin tidak wujud.
Jika fail tidak ditemui, blok kecuali FileNotFoundError menangkap ralat dan mencetak mesej mesra pengguna dan bukannya ranap program.
Modul os dan pathlib menyediakan cara untuk berinteraksi dengan sistem fail selain membuka dan menutup fail. Anda boleh menyemak sama ada fail wujud, menamakan semula atau mengalih keluarnya.
Contoh (modul os):
# Open a file in write mode file = open("example.txt", "w") # Write some content to the file file.write("Hello, World!") # Always close the file after you're done to free up system resources file.close()
Penjelasan:
with open("example.txt", "w") as file: file.write("Hello, World!") # The file is automatically closed here, even if an error occurs
Contoh (modul pathlib):
with open("example.txt", "r") as file: content = file.read() # Read the entire file at once print(content)
Penjelasan:
Path("new_example.txt"): Mencipta objek Path yang menghala ke fail.
file_path.exists(): Menyemak sama ada fail itu wujud.
file_path.unlink(): Memadamkan fail.
Modul csv dan json Python memudahkan untuk berfungsi dengan format data berstruktur seperti CSV (nilai dipisahkan koma) dan JSON (Notasi Objek JavaScript).
Fail CSV
Modul csv membolehkan anda mengendalikan data yang disusun dalam baris dan lajur.
Contoh (menulis CSV):
with open("example.txt", "r") as file: for line in file: # Loop through each line in the file print(line.strip()) # Remove trailing newline characters and print the line
Penjelasan:
csv.writer(file): Mencipta objek penulis untuk menulis baris pada fail CSV.
writer.writerow(): Menulis setiap baris data ke fail.
Contoh (membaca CSV):
with open("example.txt", "w") as file: file.write("Writing a new line of text.")
Penjelasan:
dalam blok kod di atas, csv.reader(file): Mencipta objek pembaca yang berulang melalui setiap baris dalam fail CSV.
Gelung untuk baris dalam pembaca membaca setiap baris dan mencetaknya.
Fail JSON
Modul json sangat bagus untuk membaca dan menulis data yang berstruktur dalam pasangan nilai kunci.
Contoh (menulis JSON):
with open("example.txt", "a") as file: file.write("\nThis will be appended at the end.")
Penjelasan:
json.dump(data, fail): Menulis data kamus sebagai JSON pada fail.
Contoh (membaca JSON):
with open("image.jpg", "rb") as binary_file: binary_data = binary_file.read() # Read the entire file in binary mode print(binary_data[:10]) # Print first 10 bytes for preview
Penjelasan:
json.load(file): Membaca fail JSON dan menukarkannya semula kepada kamus Python.
Apabila berurusan dengan fail yang besar, lebih cekap memproses fail dalam ketulan daripada memuatkan keseluruhan fail ke dalam memori.
Contoh (membaca seketul):
try: with open("nonexistentfile.txt", "r") as file: content = file.read() except FileNotFoundError: print("The file does not exist!")
Menggunakan fail dalam Python adalah mudah dan berkuasa. Sama ada anda memproses fail teks, menyimpan data atau mengendalikan set data yang besar, menguasai operasi fail akan menjadikan kehidupan pengekodan anda lebih mudah. Dengan petua dan teknik yang kami bincangkan dalam artikel ini, anda akan berjaya menulis program Python yang lebih cekap, boleh dipercayai dan berskala.
Terima kasih kerana membaca...
Atas ialah kandungan terperinci Pengenalan kepada Pengendalian Fail dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!