Python memiliki beberapa modul dan fungsi bawaan untuk menangani file. Fungsi-fungsi ini tersebar di beberapa modul seperti 02, 03, 04, dan 05, untuk beberapa nama. Artikel ini mengumpulkan di satu tempat banyak fungsi yang perlu Anda ketahui untuk melakukan operasi yang paling umum pada file dengan Python Show
Dalam tutorial ini, Anda akan mempelajari caranya
Bonus Gratis. 5 Pemikiran Tentang Python Mastery, kursus gratis untuk pengembang Python yang menunjukkan kepada Anda peta jalan dan pola pikir yang Anda perlukan untuk meningkatkan keterampilan Python Anda ke tingkat berikutnya Pola “with open(…) as …” PythonMembaca dan menulis data ke file menggunakan Python cukup mudah. Untuk melakukan ini, Anda harus terlebih dahulu membuka file dalam mode yang sesuai. Berikut adalah contoh cara menggunakan pola “with open(…) as …” Python untuk membuka file teks dan membaca isinya
07 mengambil nama file dan mode sebagai argumennya. _08 membuka file dalam mode hanya baca. Untuk menulis data ke file, berikan 09 sebagai argumen
Dalam contoh di atas, _07 membuka file untuk membaca atau menulis dan mengembalikan pegangan file ( 11 dalam hal ini) yang menyediakan metode yang dapat digunakan untuk membaca atau menulis data ke file. Lihat Membaca dan Menulis File dengan Python dan Bekerja dengan I/O File dengan Python untuk informasi selengkapnya tentang cara membaca dan menulis ke fileHilangkan iklanMendapatkan Daftar DirektoriMisalkan direktori kerja Anda saat ini memiliki subdirektori bernama 12 yang memiliki konten berikut
Modul 02 bawaan memiliki sejumlah fungsi berguna yang dapat digunakan untuk membuat daftar isi direktori dan memfilter hasilnya. Untuk mendapatkan daftar semua file dan folder di direktori tertentu di sistem file, gunakan 14 di versi lama Python atau 15 di Python 3. x. 15 adalah metode pilihan untuk digunakan jika Anda juga ingin mendapatkan properti file dan direktori seperti ukuran file dan tanggal modifikasiDaftar Direktori dalam Versi Legacy PythonDalam versi Python sebelum Python 3, 14 adalah metode yang digunakan untuk mendapatkan daftar direktori>>> _ 14 mengembalikan daftar Python yang berisi nama file dan subdirektori dalam direktori yang diberikan oleh argumen path>>> _Daftar direktori seperti itu tidak mudah dibaca. Mencetak output panggilan ke _14 menggunakan loop membantu membersihkan semuanya>>> _Daftar Direktori dalam Versi Python ModernDalam versi modern Python, alternatif untuk 14 adalah menggunakan 15 dan 22 _15 diperkenalkan dengan Python 3. 5 dan didokumentasikan dalam PEP 471. _15 mengembalikan iterator sebagai lawan dari daftar saat dipanggil>>> _ 25 menunjuk ke semua entri di direktori saat ini. Anda dapat mengulang konten iterator dan mencetak nama file
Di sini, _15 digunakan bersamaan dengan pernyataan 27 karena mendukung protokol pengelola konteks. Menggunakan manajer konteks menutup iterator dan membebaskan sumber daya yang diperoleh secara otomatis setelah iterator habis. Hasilnya adalah cetakan nama file di 28 seperti yang Anda lihat di contoh 14
Cara lain untuk mendapatkan daftar direktori adalah dengan menggunakan modul 05
Objek yang dikembalikan oleh 31 adalah objek 32 atau 33 tergantung pada OS _22 objek memiliki 35 metode untuk membuat iterator dari semua file dan folder dalam direktori. Setiap entri yang dihasilkan oleh _35 berisi informasi tentang file atau direktori seperti nama dan atribut file. _05 pertama kali diperkenalkan dengan Python 3. 4 dan merupakan tambahan yang bagus untuk Python yang menyediakan antarmuka berorientasi objek ke sistem fileDalam contoh di atas, Anda memanggil _22 dan memberikan argumen path ke sana. Berikutnya adalah panggilan ke _35 untuk mendapatkan daftar semua file dan direktori di 12 05 menawarkan satu set kelas yang menampilkan sebagian besar operasi umum pada jalur dengan cara yang mudah dan berorientasi objek. Menggunakan _05 lebih jika tidak sama efisiennya dengan menggunakan fungsi di 02. Manfaat lain menggunakan 05 dibandingkan 02 adalah mengurangi jumlah impor yang perlu Anda lakukan untuk memanipulasi jalur sistem file. Untuk informasi lebih lanjut, baca Modul pathlib Python 3. Menjinakkan Sistem FileCatatan. Untuk memulai _05, lihat Python Basics. Operasi Sistem File dan latihan terkaitMenjalankan kode di atas menghasilkan yang berikut ini
Menggunakan 22 atau 15 daripada 14 adalah cara yang lebih disukai untuk mendapatkan daftar direktori, terutama saat Anda bekerja dengan kode yang memerlukan jenis file dan informasi atribut file. 22 menawarkan banyak fungsi penanganan file dan jalur yang ditemukan di 02 dan 04, dan metodenya lebih efisien daripada beberapa yang ditemukan di modul ini. Kami akan membahas cara mendapatkan properti file segeraBerikut adalah fungsi daftar direktori lagi FunctionDescription________0______14Mengembalikan daftar semua file dan folder dalam direktori 15Mengembalikan iterator semua objek dalam direktori termasuk informasi atribut file 55Mengembalikan iterator semua objek dalam direktori termasuk informasi atribut fileFungsi-fungsi ini mengembalikan daftar semua yang ada di direktori, termasuk subdirektori. Ini mungkin tidak selalu menjadi perilaku yang Anda inginkan. Bagian selanjutnya akan menunjukkan cara memfilter hasil dari daftar direktori Hilangkan iklanDaftar Semua File dalam DirektoriBagian ini akan menunjukkan cara mencetak nama file dalam direktori menggunakan 14, 15, dan 22. Untuk memfilter direktori dan hanya mencantumkan file dari daftar direktori yang dihasilkan oleh 14, gunakan 03 _1Di sini, panggilan ke 14 mengembalikan daftar semua yang ada di jalur yang ditentukan, dan kemudian daftar itu difilter oleh 62 untuk hanya mencetak file dan bukan direktori. Ini menghasilkan output berikut _2Cara yang lebih mudah untuk membuat daftar file dalam direktori adalah dengan menggunakan 15 atau 22 _3Menggunakan _15 memiliki keuntungan terlihat lebih bersih dan lebih mudah dipahami daripada menggunakan 14, meskipun satu baris kode lebih panjang. Memanggil _67 pada setiap item di 25 mengembalikan 69 jika objeknya adalah file. Mencetak nama semua file dalam direktori memberi Anda hasil berikut _2Berikut cara daftar file dalam direktori menggunakan 22 5Di sini, Anda memanggil _71 pada setiap entri yang dihasilkan oleh 35. Output yang dihasilkan sama _2Kode di atas dapat dibuat lebih ringkas jika Anda menggabungkan 73 loop dan pernyataan 74 ke dalam ekspresi generator tunggal. Dan Bader memiliki artikel yang sangat bagus tentang ekspresi generator dan pemahaman daftarVersi yang dimodifikasi terlihat seperti ini _7Ini menghasilkan keluaran yang persis sama dengan contoh sebelumnya. Bagian ini menunjukkan bahwa memfilter file atau direktori menggunakan 15 dan 22 terasa lebih intuitif dan terlihat lebih bersih daripada menggunakan 14 bersamaan dengan 03Daftar SubdirektoriUntuk membuat daftar subdirektori, bukan file, gunakan salah satu metode di bawah ini. Inilah cara menggunakan _14 dan 80 _8Memanipulasi jalur sistem file dengan cara ini dapat dengan cepat menjadi rumit ketika Anda memiliki banyak panggilan ke 81. Menjalankan ini di komputer saya menghasilkan keluaran berikut _9Inilah cara menggunakan _15 0Seperti pada contoh daftar file, di sini Anda memanggil 83 pada setiap entri yang dikembalikan oleh 15. Jika entri adalah direktori, _83 mengembalikan 69, dan nama direktori dicetak. Outputnya sama seperti di atas _9Inilah cara menggunakan _22 2Memanggil _83 pada setiap entri dari 89 iterator memeriksa apakah suatu entri adalah file atau direktori. Jika entri adalah direktori, namanya dicetak ke layar, dan output yang dihasilkan sama dengan yang ada di contoh sebelumnya _9Hilangkan iklanMendapatkan Atribut FilePython memudahkan pengambilan atribut file seperti ukuran file dan waktu modifikasi. Ini dilakukan melalui 90, 15, atau 22 15 dan 22 mengambil daftar direktori dengan gabungan atribut file. Ini berpotensi lebih efisien daripada menggunakan 14 untuk membuat daftar file dan kemudian mendapatkan informasi atribut file untuk setiap fileContoh di bawah ini menunjukkan cara mengetahui waktu file di 28 terakhir diubah. Outputnya dalam hitungan detik>>> 4 _15 mengembalikan objek 25. Setiap entri dalam objek _25 memiliki metode 00 yang mengambil informasi tentang file atau direktori yang dituju. 00 memberikan informasi seperti ukuran file dan waktu modifikasi terakhir. Pada contoh di atas, kode mencetak atribut 02, yaitu saat konten file terakhir diubahModul 05 memiliki metode yang sesuai untuk mengambil informasi file yang memberikan hasil yang sama>>> 5Dalam contoh di atas, kode mengulang objek yang dikembalikan oleh 35 dan mengambil atribut file melalui panggilan 00 untuk setiap file dalam daftar direktori. Atribut _02 mengembalikan nilai float yang mewakili. Untuk mengonversi nilai yang dikembalikan oleh _02 untuk tujuan tampilan, Anda dapat menulis fungsi pembantu untuk mengubah detik menjadi objek 08 6Ini pertama-tama akan mendapatkan daftar file di 12 dan atributnya dan kemudian memanggil 10 untuk mengonversi waktu modifikasi terakhir setiap file menjadi bentuk yang dapat dibaca manusia. 10 memanfaatkan 12 untuk mengubah waktu dalam detik menjadi stringArgumen yang diteruskan ke _12 adalah sebagai berikut
Bersama-sama, arahan ini menghasilkan keluaran yang terlihat seperti ini >>> 7Sintaks untuk mengonversi tanggal dan waktu menjadi string bisa sangat membingungkan. Untuk membaca lebih lanjut tentang itu, lihat di atasnya. Referensi berguna lainnya yang mudah diingat adalah http. // strftime. org/ Membuat DirektoriCepat atau lambat, program yang Anda tulis harus membuat direktori untuk menyimpan data di dalamnya. 02 dan 05 termasuk fungsi untuk membuat direktori. Kami akan mempertimbangkan iniFunctionDescription 19Membuat satu subdirektori 20Membuat satu atau beberapa direktori 21Membuat banyak direktori, termasuk direktori perantaraMembuat Direktori TunggalUntuk membuat satu direktori, berikan jalur ke direktori sebagai parameter ke 19 8Jika direktori sudah ada, _19 memunculkan 24. Atau, Anda dapat membuat direktori menggunakan 05 _9Jika jalur sudah ada, 26 memunculkan 24>>> 0Untuk menghindari kesalahan seperti ini, tangkap kesalahan saat terjadi dan beri tahu pengguna Anda _1Sebagai alternatif, Anda dapat mengabaikan _24 dengan meneruskan argumen 29 ke 30 _2Ini tidak akan menimbulkan kesalahan jika direktori sudah ada Hilangkan iklanMembuat Beberapa Direktori 21 mirip dengan 19. Perbedaan antara keduanya adalah 21 tidak hanya dapat membuat direktori individual, tetapi juga dapat digunakan untuk membuat pohon direktori. Dengan kata lain, itu dapat membuat folder perantara yang diperlukan untuk memastikan jalur lengkap ada 21 mirip dengan menjalankan 35 di Bash. Misalnya, untuk membuat grup direktori seperti 36, yang harus Anda lakukan adalah sebagai berikut _3Ini akan membuat struktur direktori bersarang yang berisi folder 2018, 10, dan 05 _4 37 membuat direktori dengan izin default. Jika Anda perlu membuat direktori dengan izin yang berbeda, panggil 37 dan berikan mode yang Anda inginkan untuk membuat direktori _5Ini membuat struktur direktori _36 dan memberikan izin kepada pemilik dan pengguna grup untuk membaca, menulis, dan mengeksekusi. Mode default adalah _40, dan bit izin file dari direktori induk yang ada tidak diubah. Untuk detail lebih lanjut tentang izin file, dan bagaimana mode diterapkan,Jalankan _41 untuk mengonfirmasi bahwa izin yang tepat telah diterapkan _6Ini mencetak pohon direktori dari direktori saat ini. 41 biasanya digunakan untuk daftar isi direktori dalam format seperti pohon. Melewati 43 dan 44 argumen untuk itu mencetak nama direktori dan informasi izin file mereka dalam daftar vertikal. 43 mencetak izin file, dan 44 membuat 41 menghasilkan daftar vertikal tanpa garis lekukanSeperti yang Anda lihat, semua direktori memiliki izin 48. Cara alternatif untuk membuat direktori adalah dengan menggunakan 30 dari 50 _7Melewati _51 ke 52 membuatnya membuat direktori 53 dan direktori induk apa pun yang diperlukan untuk membuat jalur validSecara default, _21 dan 52 memunculkan 56 jika direktori target sudah ada. Perilaku ini dapat diganti (pada Python 3. 2) dengan meneruskan 29 sebagai argumen kata kunci saat memanggil setiap fungsiMenjalankan kode di atas menghasilkan struktur direktori seperti di bawah ini sekaligus _4Saya lebih suka menggunakan _05 saat membuat direktori karena saya dapat menggunakan fungsi yang sama untuk membuat direktori tunggal atau bersarangPencocokan Pola Nama FileSetelah mendapatkan daftar file dalam direktori menggunakan salah satu metode di atas, kemungkinan besar Anda ingin mencari file yang cocok dengan pola tertentu Ini adalah metode dan fungsi yang tersedia untuk Anda
Masing-masing dibahas di bawah ini. Contoh pada bagian ini akan dilakukan pada direktori bernama 64 yang memiliki struktur sebagai berikut _9Jika Anda mengikuti menggunakan Bash shell, Anda dapat membuat struktur direktori di atas menggunakan perintah berikut 0Ini akan membuat direktori _65, mengubahnya, dan kemudian membuat 66. Baris berikutnya membuat _67 dan 68 di 66, dan baris terakhir membuat semua file lain menggunakan ekspansi. Untuk mempelajari lebih lanjut tentang perluasan shell, kunjungi situs iniHilangkan iklanMenggunakan Metode StringPython memiliki beberapa metode bawaan untuk memodifikasi dan memanipulasi string. Dua dari metode ini, _70 dan 71, berguna saat Anda mencari pola dalam nama file. Untuk melakukan ini, pertama-tama dapatkan daftar direktori dan kemudian ulangi>>> 1Kode di atas menemukan semua file di _65, mengulanginya dan menggunakan 71 untuk mencetak nama file yang memiliki ekstensi file 74. Menjalankan ini di komputer saya menghasilkan keluaran berikut 2Pencocokan Pola Nama File Sederhana Menggunakan my_directory/ | ├── sub_dir/ | ├── bar.py | └── foo.py | ├── sub_dir_b/ | └── file4.txt | ├── sub_dir_c/ | ├── config.py | └── file5.txt | ├── file1.py ├── file2.csv └── file3.txt 75Metode string terbatas dalam kemampuan pencocokannya. 75 memiliki fungsi dan metode yang lebih canggih untuk pencocokan pola. Kami akan mempertimbangkan _61, fungsi yang mendukung penggunaan wildcard seperti 78 dan 79 untuk mencocokkan nama file. Misalnya, untuk menemukan semua file _74 dalam direktori menggunakan 75, Anda akan melakukan hal berikut>>> ________21______3 Ini mengulangi daftar file di 64 dan menggunakan 83 untuk melakukan pencarian wildcard untuk file yang memiliki ekstensi 74Pencocokan Pola Lebih CanggihMisalkan Anda ingin menemukan 74 file yang memenuhi kriteria tertentu. Misalnya, Anda mungkin hanya tertarik untuk menemukan file 74 yang berisi kata 87, angka di antara serangkaian garis bawah, dan kata 88 dalam nama filenya. Sesuatu yang mirip dengan 89, 90, atau 91Menggunakan _61, Anda bisa melakukannya dengan cara ini>>> 4Di sini, Anda hanya mencetak nama file yang cocok dengan pola 93. Tanda bintang dalam pola akan cocok dengan karakter apa pun, jadi menjalankan ini akan menemukan semua file teks yang nama filenya dimulai dengan kata 87 dan diakhiri dengan 95, seperti yang dapat Anda lihat dari output di bawah ini 5Pencocokan Pola Nama File Menggunakan my_directory/ | ├── sub_dir/ | ├── bar.py | └── foo.py | ├── sub_dir_b/ | └── file4.txt | ├── sub_dir_c/ | ├── config.py | └── file5.txt | ├── file1.py ├── file2.csv └── file3.txt _96Modul lain yang berguna untuk pencocokan pola adalah ________13______96 _98 dalam modul 96 berfungsi seperti 61, tetapi tidak seperti 61, ini memperlakukan file yang dimulai dengan titik ( 02) sebagai spesialUNIX dan sistem terkait menerjemahkan pola nama dengan wildcard seperti 79 dan 78 ke dalam daftar file. Ini disebut globbingMisalnya, mengetik 05 di shell UNIX memindahkan ( 06) semua file dengan ekstensi 07 dari direktori saat ini ke direktori 08. Karakter _78 adalah karakter pengganti yang berarti "sejumlah karakter", dan 10 adalah pola glob. Kemampuan shell ini tidak tersedia di Sistem Operasi Windows. Modul _96 menambahkan kemampuan ini dengan Python, yang memungkinkan program Windows untuk menggunakan fitur iniBerikut adalah contoh cara menggunakan 96 untuk mencari semua file sumber Python ( 07) di direktori saat ini>>> 6 _14 mencari semua file yang memiliki ekstensi 07 di direktori saat ini dan mengembalikannya sebagai daftar. 96 juga mendukung wildcard gaya shell untuk mencocokkan pola>>> ________21______7 Ini menemukan semua file teks ( _74) yang berisi angka dalam nama file 2 96 memudahkan untuk mencari file secara rekursif di subdirektori juga>>> 9Contoh ini memanfaatkan _19 untuk mencari 07 file di direktori dan subdirektori saat ini. Melewati _21 sebagai argumen untuk 22 membuatnya mencari 07 file di direktori saat ini dan subdirektori apa pun. Perbedaan antara 19 dan 62 adalah 22 mengembalikan iterator, bukan daftarMenjalankan program di atas menghasilkan yang berikut ini 0 _05 berisi metode serupa untuk membuat daftar file yang fleksibel. Contoh di bawah menunjukkan bagaimana Anda dapat menggunakan _28 untuk mencantumkan jenis file yang dimulai dengan huruf 29>>> 1Memanggil _30 mengembalikan objek generator yang menunjuk ke semua file di direktori saat ini yang dimulai dengan huruf 29 dalam ekstensi file mereka _32 mirip dengan ________19______33 yang dibahas di atas. Seperti yang Anda lihat, 05 menggabungkan banyak fitur terbaik dari modul 02, 03, dan 96 menjadi satu modul tunggal, yang membuatnya menyenangkan untuk digunakanSebagai rekap, berikut adalah tabel fungsi yang telah kami bahas di bagian ini FunctionDescription 60Tests if a string starts with a specified pattern and returns 69 or 40 59Tests if a string ends with a specified pattern and returns 69 or 40 44Tests whether the filename matches the pattern and returns 69 or 40 62Returns a list of filenames that match a pattern 63Finds patterns in path names Hilangkan iklanMelintasi Direktori dan Memproses FileTugas pemrograman yang umum adalah menjalankan pohon direktori dan memproses file di pohon. Mari jelajahi bagaimana fungsi Python bawaan 49 dapat digunakan untuk melakukan ini. _49 digunakan untuk menghasilkan nama file di pohon direktori dengan menjalankan pohon baik dari atas ke bawah atau dari bawah ke atas. Untuk keperluan bagian ini, kami akan memanipulasi pohon direktori berikut _2Berikut ini adalah contoh yang menunjukkan cara membuat daftar semua file dan direktori di pohon direktori menggunakan 49 _49 default untuk melintasi direktori dengan cara top-down _3 _49 mengembalikan tiga nilai pada setiap iterasi loop
Pada setiap iterasi, ia mencetak nama subdirektori dan file yang ditemukannya _4Untuk melintasi pohon direktori dengan cara bottom-up, berikan argumen kata kunci 54 ke 49 _5Melewati argumen _54 akan membuat 49 mencetak file yang ditemukannya di subdirektori terlebih dahulu _6Seperti yang Anda lihat, program dimulai dengan mendaftar konten subdirektori sebelum mendaftar konten direktori root. Ini sangat berguna dalam situasi di mana Anda ingin menghapus file dan direktori secara rekursif. Anda akan belajar bagaimana melakukan ini di bagian di bawah ini. Secara default, _58 tidak masuk ke tautan simbolis yang menyelesaikan ke direktori. Perilaku ini dapat diganti dengan memanggilnya dengan argumen 59Membuat File dan Direktori SementaraPython menyediakan modul praktis untuk membuat file dan direktori sementara yang disebut 60 _60 dapat digunakan untuk membuka dan menyimpan data sementara di file atau direktori saat program Anda sedang berjalan. _60 menangani penghapusan file-file sementara ketika program Anda selesai dengan merekaBerikut cara membuat file sementara _7Langkah pertama adalah mengimpor _63 dari modul 60. Selanjutnya, buat file seperti objek menggunakan metode 65 dengan memanggilnya dan meneruskan mode tempat Anda ingin membuka file. Ini akan membuat dan membuka file yang dapat digunakan sebagai tempat penyimpanan sementaraPada contoh di atas, modenya adalah _66, yang membuat 60 membuat file teks sementara dalam mode tulis. Tidak perlu memberikan file sementara nama file karena akan dihancurkan setelah skrip selesai dijalankanSetelah menulis ke file, Anda dapat membacanya dan menutupnya setelah selesai memprosesnya. Setelah file ditutup, itu akan dihapus dari sistem file. Jika Anda perlu memberi nama file sementara yang dihasilkan menggunakan 60, gunakan 69File dan direktori sementara yang dibuat menggunakan 60 disimpan dalam direktori sistem khusus untuk menyimpan file sementara. Python mencari daftar direktori standar untuk menemukan direktori tempat pengguna dapat membuat fileDi Windows, direktorinya adalah _71, 72, 73, dan 74, dalam urutan itu. Di semua platform lain, direktorinya adalah 75, 76, dan 77, dalam urutan itu. Sebagai upaya terakhir, _60 akan menyimpan file dan direktori sementara di direktori saat ini _79 juga merupakan pengelola konteks sehingga dapat digunakan bersama dengan pernyataan 27. Menggunakan manajer konteks menangani penutupan dan penghapusan file secara otomatis setelah dibaca _8Ini membuat file sementara dan membaca data darinya. Segera setelah konten file dibaca, file sementara ditutup dan dihapus dari sistem file _60 juga dapat digunakan untuk membuat direktori sementara. Mari kita lihat bagaimana Anda dapat melakukan ini menggunakan 82>>> 9Memanggil _82 membuat direktori sementara di sistem file dan mengembalikan objek yang mewakili direktori ini. Pada contoh di atas, direktori dibuat menggunakan pengelola konteks, dan nama direktori disimpan di 84. Baris ketiga mencetak nama direktori sementara, dan 85 mengonfirmasi apakah direktori tersebut benar-benar dibuat dalam sistem fileSetelah manajer konteks keluar dari konteks, direktori sementara dihapus dan panggilan ke 85 mengembalikan 40, yang berarti direktori berhasil dihapusHilangkan iklanMenghapus File dan DirektoriAnda dapat menghapus file tunggal, direktori, dan seluruh pohon direktori menggunakan metode yang ditemukan di modul 02, 04, dan 05. Bagian berikut menjelaskan cara menghapus file dan direktori yang tidak diperlukan lagiMenghapus File dengan PythonUntuk menghapus satu file, gunakan _91, 92. atau _93 _92 dan 93 secara semantik identik. Untuk menghapus file menggunakan _92, lakukan hal berikut 0Menghapus file menggunakan _93 mirip dengan cara Anda melakukannya menggunakan 92 1Memanggil _99 atau 00 pada file akan menghapus file dari sistem file. Kedua fungsi ini akan melempar _56 jika jalur yang diteruskan ke mereka menunjuk ke direktori, bukan file. Untuk menghindari hal ini, Anda dapat memeriksa apakah yang ingin Anda hapus sebenarnya adalah file dan hanya menghapusnya jika memang demikian, atau Anda dapat menggunakan penanganan pengecualian untuk menangani 56 2 62 memeriksa apakah 04 sebenarnya adalah sebuah file. Jika ya, itu dihapus oleh panggilan ke 92. Jika _04 menunjuk ke folder, pesan kesalahan dicetak ke konsolContoh berikut menunjukkan cara menggunakan penanganan pengecualian untuk menangani kesalahan saat menghapus file 3Kode di atas mencoba menghapus file terlebih dahulu sebelum memeriksa jenisnya. Jika _04 sebenarnya bukan file, 56 yang dilemparkan ditangani dalam klausa 09, dan pesan kesalahan dicetak ke konsol. Pesan kesalahan yang dicetak diformat menggunakan f-string PythonTerakhir, Anda juga dapat menggunakan _91 untuk menghapus file 4Ini membuat objek _31 bernama 04 yang menunjuk ke sebuah file. Menelepon 00 pada 04 akan menghapus 15. Jika _04 menunjuk ke direktori, 17 dimunculkan. Perlu dicatat bahwa program Python di atas memiliki izin yang sama dengan pengguna yang menjalankannya. Jika pengguna tidak memiliki izin untuk menghapus file, 18 akan dimunculkanMenghapus DirektoriPustaka standar menawarkan fungsi-fungsi berikut untuk menghapus direktori
Untuk menghapus satu direktori atau folder, gunakan 19 atau 23. Kedua fungsi ini hanya berfungsi jika direktori yang Anda coba hapus kosong. Jika direktori tidak kosong, 56 dimunculkan. Berikut cara menghapus folder 5Di sini, direktori _25 dihapus dengan meneruskan jalurnya ke 19. Jika direktori tidak kosong, pesan kesalahan akan dicetak di layar>>> 6Atau, Anda dapat menggunakan _05 untuk menghapus direktori 7Di sini, Anda membuat objek _31 yang menunjuk ke direktori yang akan dihapus. Memanggil 29 pada objek ________0______31 akan menghapusnya jika kosongHilangkan iklanMenghapus Seluruh Pohon DirektoriUntuk menghapus direktori yang tidak kosong dan seluruh pohon direktori, Python menawarkan 21 8Segala sesuatu di _25 dihapus ketika 21 dipanggil di atasnya. Mungkin ada kasus di mana Anda ingin menghapus folder kosong secara rekursif. Anda dapat melakukannya dengan menggunakan salah satu metode yang dibahas di atas bersama dengan 49 _9Ini menyusuri pohon direktori dan mencoba menghapus setiap direktori yang ditemukannya. Jika direktori tidak kosong, 56 dimunculkan dan direktori tersebut dilewati. Tabel di bawah mencantumkan fungsi yang tercakup dalam bagian iniFunctionDescription 92Deletes file dan tidak menghapus direktori 93 identik dengan 92 dan menghapus satu file____ 91.deletes.Menyalin, Memindahkan, dan Mengganti Nama File dan DirektoriPython dikirimkan dengan modul _04. _04 adalah kependekan dari utilitas shell. Ini menyediakan sejumlah operasi tingkat tinggi pada file untuk mendukung penyalinan, pengarsipan, dan penghapusan file dan direktori. Di bagian ini, Anda akan mempelajari cara memindahkan dan menyalin file dan direktoriMenyalin File dengan Python _04 menawarkan beberapa fungsi untuk menyalin file. Fungsi yang paling umum digunakan adalah _46 dan 47. Untuk menyalin file dari satu lokasi ke lokasi lain menggunakan 46, lakukan hal berikut 0 46 sebanding dengan perintah 50 dalam sistem berbasis UNIX. 51 akan menyalin file 52 ke lokasi yang ditentukan di 53. Jika _53 adalah sebuah file, isi dari file tersebut diganti dengan isi dari 52. Jika _53 adalah sebuah direktori, maka 52 akan disalin ke direktori tersebut. 46 hanya menyalin konten file dan izin file. Metadata lain seperti waktu pembuatan dan modifikasi file tidak dipertahankanUntuk mempertahankan semua metadata file saat menyalin, gunakan 47 1Menggunakan _60 mempertahankan detail tentang file seperti waktu akses terakhir, bit izin, waktu modifikasi terakhir, dan benderaMenyalin DirektoriSementara _46 hanya menyalin satu file, 62 akan menyalin seluruh direktori dan semua yang ada di dalamnya. 63 mengambil dua argumen. direktori sumber dan direktori tujuan tempat file dan folder akan disalinBerikut adalah contoh cara menyalin konten dari satu folder ke lokasi lain >>> 2Dalam contoh ini, _64 menyalin konten 65 ke lokasi baru 66 dan mengembalikan direktori tujuan. Direktori tujuan tidak boleh sudah ada. Itu akan dibuat serta direktori induk yang hilang. 62 adalah cara yang baik untuk membuat cadangan file AndaMemindahkan File dan DirektoriUntuk memindahkan file atau direktori ke lokasi lain, gunakan 68 52 adalah file atau direktori yang akan dipindahkan dan 53 adalah tujuan>>> ________31______3 71 memindahkan 72 ke 73 jika 73 ada. Jika _73 tidak ada, 72 akan diganti namanya menjadi 88Mengganti Nama File dan DirektoriPython menyertakan 78 untuk mengganti nama file dan direktori>>> 4Baris di atas akan mengganti nama _79 menjadi 80. Jika jalur tujuan mengarah ke direktori, itu akan memunculkan 56Cara lain untuk mengganti nama file atau direktori adalah dengan menggunakan 82 dari modul 05>>> 5Untuk mengganti nama file menggunakan _05, Anda terlebih dahulu membuat objek 22 yang berisi jalur ke file yang ingin Anda ganti. Langkah selanjutnya adalah memanggil _82 pada objek path dan meneruskan nama file baru untuk file atau direktori yang Anda ganti namanyaPengarsipanArsip adalah cara mudah untuk mengemas beberapa file menjadi satu. Dua jenis arsip yang paling umum adalah ZIP dan TAR. Program Python yang Anda tulis dapat membuat, membaca, dan mengekstrak data dari arsip. Anda akan mempelajari cara membaca dan menulis ke kedua format arsip di bagian ini Membaca File ZIPModul _87 adalah modul tingkat rendah yang merupakan bagian dari Perpustakaan Standar Python. 87 memiliki fungsi yang memudahkan untuk membuka dan mengekstrak file ZIP. Untuk membaca konten file ZIP, hal pertama yang harus dilakukan adalah membuat objek 89. 89 objek mirip dengan objek file yang dibuat menggunakan 07. 89 juga merupakan manajer konteks dan karenanya mendukung pernyataan 27 6Di sini, Anda membuat objek _89, meneruskan nama file ZIP untuk dibuka dalam mode baca. Setelah membuka file ZIP, informasi tentang arsip dapat diakses melalui fungsi yang disediakan oleh modul 87. Arsip _96 pada contoh di atas dibuat dari direktori bernama 87 yang berisi total 5 file dan 1 subdirektori 7Untuk mendapatkan daftar file dalam arsip, panggil 98 pada objek 89 8Ini menghasilkan daftar _9 _00 mengembalikan daftar nama file dan direktori dalam arsip. Untuk mengambil informasi tentang file dalam arsip, gunakan 01 0Inilah hasilnya 1 _01 mengembalikan objek 03 yang menyimpan informasi tentang satu anggota arsip. Untuk mendapatkan informasi tentang file dalam arsip, Anda meneruskan jalurnya sebagai argumen ke 01. Menggunakan _05, Anda dapat mengambil informasi tentang anggota arsip seperti tanggal file terakhir diubah, ukuran terkompresi, dan nama file lengkapnya. Mengakses _06 mengambil ukuran asli file dalam byteContoh berikut menunjukkan cara mengambil detail lebih lanjut tentang file yang diarsipkan di Python REPL. Asumsikan modul 87 telah diimpor dan 08 adalah objek yang sama dengan yang Anda buat pada contoh sebelumnya>>> 2 _08 berisi detail tentang 10 seperti ukurannya saat dikompresi dan path lengkapnyaBaris pertama menunjukkan cara mengambil tanggal modifikasi terakhir file. Baris berikutnya menunjukkan cara mendapatkan ukuran file setelah kompresi. Baris terakhir menunjukkan jalur lengkap 10 di arsip 89 mendukung protokol manajer konteks, itulah sebabnya Anda dapat menggunakannya dengan pernyataan 27. Melakukan ini secara otomatis menutup objek _89 setelah Anda selesai melakukannya. Mencoba membuka atau mengekstrak file dari objek ________21______89 yang tertutup akan menghasilkan kesalahanHilangkan iklanMengekstrak Arsip ZIPModul _87 memungkinkan Anda mengekstrak satu atau lebih file dari arsip ZIP melalui 17 dan 18Metode ini mengekstrak file ke direktori saat ini secara default. Keduanya mengambil parameter _19 opsional yang memungkinkan Anda menentukan direktori berbeda untuk mengekstrak file. Jika direktori tidak ada, itu dibuat secara otomatis. Untuk mengekstrak file dari arsip, lakukan hal berikut>>> 3Baris kode ketiga adalah panggilan ke 14, yang menunjukkan bahwa direktori saat ini hanya memiliki satu file, 96Selanjutnya, Anda membuka _96 dalam mode baca dan memanggil 17 untuk mengekstrak 67 darinya. _17 mengembalikan jalur file lengkap dari file yang diekstraksi. Karena tidak ada jalur yang ditentukan, _17 mengekstrak 67 ke direktori saat iniBaris berikutnya mencetak daftar direktori yang menunjukkan bahwa direktori saat ini sekarang menyertakan file yang diekstraksi selain arsip aslinya. Baris setelah itu menunjukkan cara mengekstrak seluruh arsip ke dalam direktori 28. _18 membuat 30 dan mengekstrak isi 96 ke dalamnya. Baris terakhir menutup arsip ZIPMengekstrak Data Dari Arsip yang Dilindungi Kata Sandi 87 mendukung ekstraksi ZIP yang dilindungi kata sandi. Untuk mengekstrak file ZIP yang dilindungi kata sandi, berikan kata sandi ke metode 17 atau 18 sebagai argumen>>> 4Ini membuka arsip _35 dalam mode baca. Kata sandi diberikan ke _18, dan konten arsip diekstrak ke 30. Arsip ditutup secara otomatis setelah ekstraksi selesai berkat pernyataan 27Membuat Arsip ZIP BaruUntuk membuat arsip ZIP baru, Anda membuka objek 89 dalam mode tulis ( 09) dan menambahkan file yang ingin Anda arsipkan>>> 5Dalam contoh, _41 dibuka dalam mode tulis dan setiap file di 42 ditambahkan ke arsip. Saat rangkaian pernyataan 27 selesai, 41 ditutup. Membuka file ZIP dalam mode tulis akan menghapus konten arsip dan membuat arsip baruUntuk menambahkan file ke arsip yang sudah ada, buka objek 89 dalam mode tambahkan lalu tambahkan file>>> 6Di sini, Anda membuka arsip 46 yang Anda buat pada contoh sebelumnya dalam mode penambahan. Membuka objek _89 dalam mode append memungkinkan Anda menambahkan file baru ke file ZIP tanpa menghapus isinya saat ini. Setelah menambahkan file ke file ZIP, pernyataan 27 keluar dari konteks dan menutup file ZIPMembuka Arsip TARFile TAR adalah arsip file yang tidak terkompresi seperti ZIP. Mereka dapat dikompres menggunakan metode kompresi gzip, bzip2, dan lzma. Kelas _49 memungkinkan membaca dan menulis arsip TARLakukan ini untuk membaca dari arsip 7 _50 objek terbuka seperti kebanyakan objek mirip file. Mereka memiliki fungsi _07 yang mengambil mode yang menentukan bagaimana file akan dibukaGunakan mode 52, 53 atau 54 untuk membuka file TAR yang tidak terkompresi untuk masing-masing membaca, menulis, dan menambahkan. Untuk membuka file TAR terkompresi, berikan argumen mode ke 55 dalam bentuk 56. Tabel di bawah mencantumkan mode yang memungkinkan file TAR dapat dibukaModeAction 08Opens archive for reading with transparent compression 58Opens archive for reading with gzip compression 59Opens archive for reading with bzip2 compression 60Opens archive for reading with lzma compression 09Opens archive for uncompressed writing 62Opens archive for gzip compressed writing 63Opens archive for lzma compressed writing 64Opens archive for appending with no compression _65 default ke mode 52. Untuk membaca file TAR yang tidak terkompresi dan mengambil nama file di dalamnya, gunakan 67>>> ________36______8 Ini mengembalikan daftar dengan nama isi arsip Catatan. Untuk tujuan menunjukkan kepada Anda bagaimana menggunakan metode objek 50 yang berbeda, file TAR dalam contoh dibuka dan ditutup secara manual dalam sesi REPL interaktifBerinteraksi dengan file TAR dengan cara ini memungkinkan Anda melihat hasil dari menjalankan setiap perintah. Biasanya, Anda ingin menggunakan manajer konteks untuk membuka objek seperti file Metadata setiap entri dalam arsip dapat diakses menggunakan atribut khusus >>> 9Dalam contoh ini, Anda menelusuri daftar file yang dikembalikan oleh 69 dan mencetak setiap atribut file. Objek yang dikembalikan oleh _69 memiliki atribut yang dapat diakses secara terprogram seperti nama, ukuran, dan waktu modifikasi terakhir dari setiap file dalam arsip. Setelah membaca atau menulis ke arsip, itu harus ditutup untuk mengosongkan sumber daya sistemMengekstrak File Dari Arsip TARDi bagian ini, Anda akan mempelajari cara mengekstrak file dari arsip TAR menggunakan metode berikut
Untuk mengekstrak satu file dari arsip TAR, gunakan 74, dengan meneruskan nama file>>> 0File _75 diekstraksi dari arsip ke sistem file. Memanggil _14 menegaskan bahwa 75 file berhasil diekstraksi ke direktori saat ini. Untuk membongkar atau mengekstrak semuanya dari arsip, gunakan 18>>> 1 _18 memiliki 19 opsional argumen untuk menentukan ke mana file yang diekstrak harus pergi. Di sini, arsip dibongkar ke direktori ________23______81. Perintah berikut menunjukkan bahwa arsip berhasil diekstraksi 2Untuk mengekstrak objek file untuk dibaca atau ditulis, gunakan 72, yang menggunakan nama file atau objek 83 untuk diekstraksi sebagai argumen. _72 mengembalikan objek seperti file yang dapat dibaca dan digunakan>>> 3Arsip yang dibuka harus selalu ditutup setelah dibaca atau ditulis. Untuk menutup arsip, panggil _85 pada pegangan file arsip atau gunakan pernyataan 27 saat membuat 50 objek untuk menutup arsip secara otomatis setelah Anda selesai. Ini membebaskan sumber daya sistem dan menulis setiap perubahan yang Anda buat ke arsip ke sistem fileMembuat Arsip TAR BaruInilah cara Anda melakukannya >>> 4Pertama, Anda membuat daftar file untuk ditambahkan ke arsip sehingga Anda tidak perlu menambahkan setiap file secara manual Baris berikutnya menggunakan manajer konteks 27 untuk membuka arsip baru bernama 89 dalam mode tulis. Membuka arsip dalam mode tulis( 53) memungkinkan Anda untuk menulis file baru ke arsip. Semua file yang ada di arsip akan dihapus dan arsip baru akan dibuatSetelah arsip dibuat dan diisi, manajer konteks 27 secara otomatis menutupnya dan menyimpannya ke sistem file. Tiga baris terakhir membuka arsip yang baru saja Anda buat dan mencetak nama file yang ada di dalamnyaUntuk menambahkan file baru ke arsip yang sudah ada, buka arsip dalam mode tambahkan ( 54)>>> 5Membuka arsip dalam mode penambahan memungkinkan Anda menambahkan file baru ke dalamnya tanpa menghapus file yang sudah ada di dalamnya Bekerja Dengan Arsip Terkompresi _50 juga dapat membaca dan menulis arsip TAR yang dikompres menggunakan kompresi gzip, bzip2, dan lzma. Untuk membaca atau menulis ke arsip terkompresi, gunakan 55, meneruskan mode yang sesuai untuk jenis kompresiMisalnya, untuk membaca atau menulis data ke arsip TAR yang dikompres menggunakan gzip, gunakan mode 95 atau 96 masing-masing>>> 6Mode _96 membuka arsip untuk tulisan terkompresi gzip dan 95 membuka arsip untuk bacaan terkompresi gzip. Membuka arsip terkompresi dalam mode penambahan tidak dimungkinkan. Untuk menambahkan file ke arsip terkompresi, Anda harus membuat arsip baruCara Lebih Mudah Membuat ArsipPustaka Standar Python juga mendukung pembuatan arsip TAR dan ZIP menggunakan metode tingkat tinggi dalam modul 04. Utilitas pengarsipan di 04 memungkinkan Anda membuat, membaca, dan mengekstrak arsip ZIP dan TAR. Utilitas ini mengandalkan modul 50 dan 87 level yang lebih rendahBekerja Dengan Arsip Menggunakan 03 03 membutuhkan setidaknya dua argumen. nama arsip dan format arsipSecara default, ini memampatkan semua file di direktori saat ini ke dalam format arsip yang ditentukan dalam argumen 05. Anda dapat memberikan argumen _06 opsional untuk mengompres file di direktori yang berbeda. 07 mendukung 08, 09, 10, dan 11 format arsipIni adalah cara membuat arsip TAR menggunakan 04 7Ini menyalin semua yang ada di 13 dan membuat arsip bernama 14 di sistem file dan mengembalikan namanya. Untuk mengekstrak arsip, hubungi 15 8Memanggil _15 dan meneruskan nama arsip dan direktori tujuan mengekstrak konten 14 ke 18. Arsip ZIP dapat dibuat dan diekstraksi dengan cara yang samaMembaca Banyak FilePython mendukung membaca data dari beberapa input stream atau dari daftar file melalui modul 06. Modul ini memungkinkan Anda mengulang konten dari satu atau lebih file teks dengan cepat dan mudah. Inilah cara umum _06 digunakan _9 _06 mendapatkan inputnya dari argumen baris perintah yang diteruskan ke 22 secara defaultMenggunakan _06 untuk Mengulangi Banyak FileMari gunakan _06 untuk membuat versi kasar dari utilitas umum UNIX 25. Utilitas _25 membaca file secara berurutan, menuliskannya ke keluaran standar. Ketika diberi lebih dari satu file dalam argumen baris perintahnya, 25 akan menggabungkan file teks dan menampilkan hasilnya di terminal _00Menjalankan ini pada dua file teks di direktori saya saat ini menghasilkan keluaran berikut _01 _06 memungkinkan Anda untuk mengambil lebih banyak informasi tentang setiap baris seperti apakah itu baris pertama atau tidak ( 29), nomor baris ( 30), dan nama file ( 31). Anda dapat membaca selengkapnya di siniKesimpulanAnda sekarang tahu cara menggunakan Python untuk melakukan operasi paling umum pada file dan grup file. Anda telah mempelajari berbagai modul bawaan yang digunakan untuk membaca, menemukan, dan memanipulasinya Anda sekarang diperlengkapi untuk menggunakan Python
Tandai sebagai Selesai Tonton Sekarang Tutorial ini memiliki kursus video terkait yang dibuat oleh tim Real Python. Tonton bersama dengan tutorial tertulis untuk memperdalam pemahaman Anda. Resep Praktis untuk Bekerja Dengan File di Python 🐍 Trik Python 💌 Dapatkan Trik Python singkat & manis yang dikirim ke kotak masuk Anda setiap beberapa hari. Tidak pernah ada spam. Berhenti berlangganan kapan saja. Dikuratori oleh tim Real Python Kirimi Saya Trik Python » Tentang Vuyisile Ndlovu Pengembang Django dan penggila sumber terbuka » Lebih lanjut tentang VuyisileSetiap tutorial di Real Python dibuat oleh tim pengembang sehingga memenuhi standar kualitas tinggi kami. Anggota tim yang mengerjakan tutorial ini adalah Daud Geir Arne Joanna Master Keterampilan Python Dunia Nyata Dengan Akses Tanpa Batas ke Python Nyata Bergabunglah dengan kami dan dapatkan akses ke ribuan tutorial, kursus video langsung, dan komunitas pakar Pythonista Tingkatkan Keterampilan Python Anda » Guru Keterampilan Python Dunia Nyata Bergabunglah dengan kami dan dapatkan akses ke ribuan tutorial, kursus video langsung, dan komunitas ahli Pythonista Tingkatkan Keterampilan Python Anda » Bagaimana menurutmu? Nilai artikel ini Tweet Bagikan Bagikan EmailApa takeaway # 1 Anda atau hal favorit yang Anda pelajari? Kiat Berkomentar. Komentar yang paling berguna adalah yang ditulis dengan tujuan belajar dari atau membantu siswa lain. dan dapatkan jawaban atas pertanyaan umum di portal dukungan kami Bagaimana Anda membaca data dari file teks dengan Python?Jika Anda ingin membaca file teks dengan Python, Anda harus membukanya terlebih dahulu. Jika file teks dan file Anda saat ini berada di direktori ("folder") yang sama, maka Anda cukup mereferensikan nama file dalam fungsi open().
Bagaimana Anda mengakses data dengan Python?Untuk mengakses database dengan Python, Anda harus menggunakan adaptor database . Python menawarkan adaptor basis data melalui modulnya yang memungkinkan akses ke basis data utama seperti MySQL, PostgreSQL, SQL Server, dan SQLite. Selain itu, semua modul ini mengandalkan API basis data Python (DB-API) untuk mengelola basis data.
Bagaimana Anda membaca data dari file?Langkah dasar dalam membaca data dari file adalah. . Beri tahu program di mana menemukan data Buka jalur ke data Siapkan variabel program untuk mengakses data Baca datanya Tutup jalur data |