Bagaimana Anda mengakses data dari file dengan python?

Python memiliki beberapa modul dan fungsi bawaan untuk menangani file. Fungsi-fungsi ini tersebar di beberapa modul seperti

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
02,
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
03,
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
04, dan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
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

  • Ambil properti file
  • Buat direktori
  • Cocokkan pola dalam nama file
  • Lintasi pohon direktori
  • Buat file dan direktori sementara
  • Hapus file dan direktori
  • Salin, pindahkan, atau ganti nama file dan direktori
  • Buat dan ekstrak arsip ZIP dan TAR
  • Buka banyak file menggunakan modul
    with open('data.txt', 'w') as f:
        data = 'some data to be written to the file'
        f.write(data)
    
    _06

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 …” Python

Membaca 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

with open('data.txt', 'r') as f:
    data = f.read()

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
07 mengambil nama file dan mode sebagai argumennya.
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_08 membuka file dalam mode hanya baca. Untuk menulis data ke file, berikan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
09 sebagai argumen

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)

Dalam contoh di atas,

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_07 membuka file untuk membaca atau menulis dan mengembalikan pegangan file (
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
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 file

Hilangkan iklan

Mendapatkan Daftar Direktori

Misalkan direktori kerja Anda saat ini memiliki subdirektori bernama

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
12 yang memiliki konten berikut

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

Modul

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
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
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
14 di versi lama Python atau
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
15 di Python 3. x.
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
15 adalah metode pilihan untuk digunakan jika Anda juga ingin mendapatkan properti file dan direktori seperti ukuran file dan tanggal modifikasi

Daftar Direktori dalam Versi Legacy Python

Dalam versi Python sebelum Python 3,

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
14 adalah metode yang digunakan untuk mendapatkan daftar direktori

>>>

>>> import os
>>> entries = os.listdir('my_directory/')
_

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
14 mengembalikan daftar Python yang berisi nama file dan subdirektori dalam direktori yang diberikan oleh argumen path

>>>

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
_

Daftar direktori seperti itu tidak mudah dibaca. Mencetak output panggilan ke

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_14 menggunakan loop membantu membersihkan semuanya

>>>

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_

Daftar Direktori dalam Versi Python Modern

Dalam versi modern Python, alternatif untuk

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
14 adalah menggunakan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
15 dan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
22

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_15 diperkenalkan dengan Python 3. 5 dan didokumentasikan dalam PEP 471.
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_15 mengembalikan iterator sebagai lawan dari daftar saat dipanggil

>>>

>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
_

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
25 menunjuk ke semua entri di direktori saat ini. Anda dapat mengulang konten iterator dan mencetak nama file

import os

with os.scandir('my_directory/') as entries:
    for entry in entries:
        print(entry.name)

Di sini,

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_15 digunakan bersamaan dengan pernyataan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
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
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
28 seperti yang Anda lihat di contoh
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
14

sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir

Cara lain untuk mendapatkan daftar direktori adalah dengan menggunakan modul

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
05

from pathlib import Path

entries = Path('my_directory/')
for entry in entries.iterdir():
    print(entry.name)

Objek yang dikembalikan oleh

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
31 adalah objek
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
32 atau
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
33 tergantung pada OS

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_22 objek memiliki
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
35 metode untuk membuat iterator dari semua file dan folder dalam direktori. Setiap entri yang dihasilkan oleh
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_35 berisi informasi tentang file atau direktori seperti nama dan atribut file.
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_05 pertama kali diperkenalkan dengan Python 3. 4 dan merupakan tambahan yang bagus untuk Python yang menyediakan antarmuka berorientasi objek ke sistem file

Dalam contoh di atas, Anda memanggil

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_22 dan memberikan argumen path ke sana. Berikutnya adalah panggilan ke
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_35 untuk mendapatkan daftar semua file dan direktori di
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
12

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
05 menawarkan satu set kelas yang menampilkan sebagian besar operasi umum pada jalur dengan cara yang mudah dan berorientasi objek. Menggunakan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_05 lebih jika tidak sama efisiennya dengan menggunakan fungsi di
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
02. Manfaat lain menggunakan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
05 dibandingkan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
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 File

Catatan. Untuk memulai

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_05, lihat Python Basics. Operasi Sistem File dan latihan terkait

Menjalankan kode di atas menghasilkan yang berikut ini

sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir

Menggunakan

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
22 atau
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
15 daripada
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
14 adalah cara yang lebih disukai untuk mendapatkan daftar direktori, terutama saat Anda bekerja dengan kode yang memerlukan jenis file dan informasi atribut file.
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
22 menawarkan banyak fungsi penanganan file dan jalur yang ditemukan di
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
02 dan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
04, dan metodenya lebih efisien daripada beberapa yang ditemukan di modul ini. Kami akan membahas cara mendapatkan properti file segera

Berikut adalah fungsi daftar direktori lagi

FunctionDescription________0______14Mengembalikan daftar semua file dan folder dalam direktori

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
15Mengembalikan iterator semua objek dalam direktori termasuk informasi atribut file
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
55Mengembalikan iterator semua objek dalam direktori termasuk informasi atribut file

Fungsi-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 iklan

Daftar Semua File dalam Direktori

Bagian ini akan menunjukkan cara mencetak nama file dalam direktori menggunakan

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
14,
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
15, dan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
22. Untuk memfilter direktori dan hanya mencantumkan file dari daftar direktori yang dihasilkan oleh
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
14, gunakan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
03

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_1

Di sini, panggilan ke

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
14 mengembalikan daftar semua yang ada di jalur yang ditentukan, dan kemudian daftar itu difilter oleh
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
62 untuk hanya mencetak file dan bukan direktori. Ini menghasilkan output berikut

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_2

Cara yang lebih mudah untuk membuat daftar file dalam direktori adalah dengan menggunakan

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
15 atau
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
22

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_3

Menggunakan

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_15 memiliki keuntungan terlihat lebih bersih dan lebih mudah dipahami daripada menggunakan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
14, meskipun satu baris kode lebih panjang. Memanggil
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_67 pada setiap item di
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
25 mengembalikan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
69 jika objeknya adalah file. Mencetak nama semua file dalam direktori memberi Anda hasil berikut

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_2

Berikut cara daftar file dalam direktori menggunakan

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
22

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
5

Di sini, Anda memanggil

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_71 pada setiap entri yang dihasilkan oleh
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
35. Output yang dihasilkan sama

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_2

Kode di atas dapat dibuat lebih ringkas jika Anda menggabungkan

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
73 loop dan pernyataan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
74 ke dalam ekspresi generator tunggal. Dan Bader memiliki artikel yang sangat bagus tentang ekspresi generator dan pemahaman daftar

Versi yang dimodifikasi terlihat seperti ini

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_7

Ini menghasilkan keluaran yang persis sama dengan contoh sebelumnya. Bagian ini menunjukkan bahwa memfilter file atau direktori menggunakan

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
15 dan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
22 terasa lebih intuitif dan terlihat lebih bersih daripada menggunakan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
14 bersamaan dengan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
03

Daftar Subdirektori

Untuk membuat daftar subdirektori, bukan file, gunakan salah satu metode di bawah ini. Inilah cara menggunakan

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_14 dan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
80

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_8

Memanipulasi jalur sistem file dengan cara ini dapat dengan cepat menjadi rumit ketika Anda memiliki banyak panggilan ke

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
81. Menjalankan ini di komputer saya menghasilkan keluaran berikut

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_9

Inilah cara menggunakan

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_15

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
0

Seperti pada contoh daftar file, di sini Anda memanggil

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
83 pada setiap entri yang dikembalikan oleh
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
15. Jika entri adalah direktori,
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_83 mengembalikan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
69, dan nama direktori dicetak. Outputnya sama seperti di atas

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_9

Inilah cara menggunakan

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_22

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
2

Memanggil

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_83 pada setiap entri dari
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
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

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_9

Hilangkan iklan

Mendapatkan Atribut File

Python memudahkan pengambilan atribut file seperti ukuran file dan waktu modifikasi. Ini dilakukan melalui

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
90,
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
15, atau
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
22

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
15 dan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
22 mengambil daftar direktori dengan gabungan atribut file. Ini berpotensi lebih efisien daripada menggunakan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
14 untuk membuat daftar file dan kemudian mendapatkan informasi atribut file untuk setiap file

Contoh di bawah ini menunjukkan cara mengetahui waktu file di

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
28 terakhir diubah. Outputnya dalam hitungan detik

>>>

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
4

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_15 mengembalikan objek
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
25. Setiap entri dalam objek
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_25 memiliki metode
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
00 yang mengambil informasi tentang file atau direktori yang dituju.
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
00 memberikan informasi seperti ukuran file dan waktu modifikasi terakhir. Pada contoh di atas, kode mencetak atribut
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
02, yaitu saat konten file terakhir diubah

Modul

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
05 memiliki metode yang sesuai untuk mengambil informasi file yang memberikan hasil yang sama

>>>

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
5

Dalam contoh di atas, kode mengulang objek yang dikembalikan oleh

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
35 dan mengambil atribut file melalui panggilan
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
00 untuk setiap file dalam daftar direktori. Atribut
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
_02 mengembalikan nilai float yang mewakili. Untuk mengonversi nilai yang dikembalikan oleh
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
_02 untuk tujuan tampilan, Anda dapat menulis fungsi pembantu untuk mengubah detik menjadi objek
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
08

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
6

Ini pertama-tama akan mendapatkan daftar file di

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
12 dan atributnya dan kemudian memanggil
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
10 untuk mengonversi waktu modifikasi terakhir setiap file menjadi bentuk yang dapat dibaca manusia.
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
10 memanfaatkan
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
12 untuk mengubah waktu dalam detik menjadi string

Argumen yang diteruskan ke

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
_12 adalah sebagai berikut

  • 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
    
    _14. hari dalam sebulan
  • 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
    
    _15. bulan, dalam bentuk singkatan
  • 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
    
    _16. tahun

Bersama-sama, arahan ini menghasilkan keluaran yang terlihat seperti ini

>>>

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
7

Sintaks 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 Direktori

Cepat atau lambat, program yang Anda tulis harus membuat direktori untuk menyimpan data di dalamnya.

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
02 dan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
05 termasuk fungsi untuk membuat direktori. Kami akan mempertimbangkan ini

FunctionDescription

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
19Membuat satu subdirektori
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
20Membuat satu atau beberapa direktori
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
21Membuat banyak direktori, termasuk direktori perantara

Membuat Direktori Tunggal

Untuk membuat satu direktori, berikan jalur ke direktori sebagai parameter ke

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
19

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
8

Jika direktori sudah ada,

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
_19 memunculkan
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
24. Atau, Anda dapat membuat direktori menggunakan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
05

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
_9

Jika jalur sudah ada,

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
26 memunculkan
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
24

>>>

>>> import os
>>> entries = os.listdir('my_directory/')
0

Untuk menghindari kesalahan seperti ini, tangkap kesalahan saat terjadi dan beri tahu pengguna Anda

>>> import os
>>> entries = os.listdir('my_directory/')
_1

Sebagai alternatif, Anda dapat mengabaikan

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
_24 dengan meneruskan argumen
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
29 ke
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
30

>>> import os
>>> entries = os.listdir('my_directory/')
_2

Ini tidak akan menimbulkan kesalahan jika direktori sudah ada

Hilangkan iklan

Membuat Beberapa Direktori

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
21 mirip dengan
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
19. Perbedaan antara keduanya adalah
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
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

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
21 mirip dengan menjalankan
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
35 di Bash. Misalnya, untuk membuat grup direktori seperti
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
36, yang harus Anda lakukan adalah sebagai berikut

>>> import os
>>> entries = os.listdir('my_directory/')
_3

Ini akan membuat struktur direktori bersarang yang berisi folder 2018, 10, dan 05

>>> import os
>>> entries = os.listdir('my_directory/')
_4

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
37 membuat direktori dengan izin default. Jika Anda perlu membuat direktori dengan izin yang berbeda, panggil
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
37 dan berikan mode yang Anda inginkan untuk membuat direktori

>>> import os
>>> entries = os.listdir('my_directory/')
_5

Ini membuat struktur direktori

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
_36 dan memberikan izin kepada pemilik dan pengguna grup untuk membaca, menulis, dan mengeksekusi. Mode default adalah
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
_40, dan bit izin file dari direktori induk yang ada tidak diubah. Untuk detail lebih lanjut tentang izin file, dan bagaimana mode diterapkan,

Jalankan

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
_41 untuk mengonfirmasi bahwa izin yang tepat telah diterapkan

>>> import os
>>> entries = os.listdir('my_directory/')
_6

Ini mencetak pohon direktori dari direktori saat ini.

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
41 biasanya digunakan untuk daftar isi direktori dalam format seperti pohon. Melewati
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
43 dan
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
44 argumen untuk itu mencetak nama direktori dan informasi izin file mereka dalam daftar vertikal.
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
43 mencetak izin file, dan
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
44 membuat
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
41 menghasilkan daftar vertikal tanpa garis lekukan

Seperti yang Anda lihat, semua direktori memiliki izin

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
48. Cara alternatif untuk membuat direktori adalah dengan 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
30 dari
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
50

>>> import os
>>> entries = os.listdir('my_directory/')
_7

Melewati

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
_51 ke
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
52 membuatnya membuat direktori
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
53 dan direktori induk apa pun yang diperlukan untuk membuat jalur valid

Secara default,

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
_21 dan
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
52 memunculkan
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
56 jika direktori target sudah ada. Perilaku ini dapat diganti (pada Python 3. 2) dengan meneruskan
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
29 sebagai argumen kata kunci saat memanggil setiap fungsi

Menjalankan kode di atas menghasilkan struktur direktori seperti di bawah ini sekaligus

>>> import os
>>> entries = os.listdir('my_directory/')
_4

Saya lebih suka menggunakan

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_05 saat membuat direktori karena saya dapat menggunakan fungsi yang sama untuk membuat direktori tunggal atau bersarang

Pencocokan Pola Nama File

Setelah 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

  • 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
    
    59 dan
    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
    
    60 metode string
  • 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
    
    _61
  • 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
    
    _62
  • 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
    
    _63

Masing-masing dibahas di bawah ini. Contoh pada bagian ini akan dilakukan pada direktori bernama

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
64 yang memiliki struktur sebagai berikut

>>> import os
>>> entries = os.listdir('my_directory/')
_9

Jika Anda mengikuti menggunakan Bash shell, Anda dapat membuat struktur direktori di atas menggunakan perintah berikut

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
0

Ini akan membuat direktori

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
_65, mengubahnya, dan kemudian membuat
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
66. Baris berikutnya membuat
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
_67 dan
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
68 di
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
66, dan baris terakhir membuat semua file lain menggunakan ekspansi. Untuk mempelajari lebih lanjut tentang perluasan shell, kunjungi situs ini

Hilangkan iklan

Menggunakan Metode String

Python memiliki beberapa metode bawaan untuk memodifikasi dan memanipulasi string. Dua dari metode ini,

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
_70 dan
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
71, berguna saat Anda mencari pola dalam nama file. Untuk melakukan ini, pertama-tama dapatkan daftar direktori dan kemudian ulangi

>>>

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
1

Kode di atas menemukan semua file di

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
_65, mengulanginya dan 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
71 untuk mencetak nama file yang memiliki ekstensi file
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
74. Menjalankan ini di komputer saya menghasilkan keluaran berikut

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
2

Pencocokan 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 75

Metode string terbatas dalam kemampuan pencocokannya.

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
75 memiliki fungsi dan metode yang lebih canggih untuk pencocokan pola. Kami akan mempertimbangkan
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
_61, fungsi yang mendukung penggunaan wildcard seperti
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
78 dan
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
79 untuk mencocokkan nama file. Misalnya, untuk menemukan semua file
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
_74 dalam direktori 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
75, Anda akan melakukan hal berikut

>>> ________21______3

Ini mengulangi daftar file di

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
64 dan 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
83 untuk melakukan pencarian wildcard untuk file yang memiliki ekstensi
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
74

Pencocokan Pola Lebih Canggih

Misalkan Anda ingin menemukan

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
74 file yang memenuhi kriteria tertentu. Misalnya, Anda mungkin hanya tertarik untuk menemukan file
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
74 yang berisi kata
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
87, angka di antara serangkaian garis bawah, dan kata
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
88 dalam nama filenya. Sesuatu yang mirip dengan
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
89,
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
90, atau
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
91

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
_61, Anda bisa melakukannya dengan cara ini

>>>

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
4

Di sini, Anda hanya mencetak nama file yang cocok dengan pola

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
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
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
87 dan diakhiri dengan
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
95, seperti yang dapat Anda lihat dari output di bawah ini

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
5

Pencocokan 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 _96

Modul lain yang berguna untuk pencocokan pola adalah ________13______96

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
_98 dalam modul
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
96 berfungsi seperti
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
61, tetapi tidak seperti
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
61, ini memperlakukan file yang dimulai dengan titik (
>>> import os
>>> entries = os.listdir('my_directory/')
02) sebagai spesial

UNIX dan sistem terkait menerjemahkan pola nama dengan wildcard seperti

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
79 dan
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
78 ke dalam daftar file. Ini disebut globbing

Misalnya, mengetik

>>> import os
>>> entries = os.listdir('my_directory/')
05 di shell UNIX memindahkan (
>>> import os
>>> entries = os.listdir('my_directory/')
06) semua file dengan ekstensi
>>> import os
>>> entries = os.listdir('my_directory/')
07 dari direktori saat ini ke direktori
>>> import os
>>> entries = os.listdir('my_directory/')
08. Karakter
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
_78 adalah karakter pengganti yang berarti "sejumlah karakter", dan
>>> import os
>>> entries = os.listdir('my_directory/')
10 adalah pola glob. Kemampuan shell ini tidak tersedia di Sistem Operasi Windows. Modul
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
_96 menambahkan kemampuan ini dengan Python, yang memungkinkan program Windows untuk menggunakan fitur ini

Berikut adalah contoh cara 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
96 untuk mencari semua file sumber Python (
>>> import os
>>> entries = os.listdir('my_directory/')
07) di direktori saat ini

>>>

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
6

>>> import os
>>> entries = os.listdir('my_directory/')
_14 mencari semua file yang memiliki ekstensi
>>> import os
>>> entries = os.listdir('my_directory/')
07 di direktori saat ini dan mengembalikannya sebagai daftar.
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
96 juga mendukung wildcard gaya shell untuk mencocokkan pola

>>> ________21______7

Ini menemukan semua file teks (

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
_74) yang berisi angka dalam nama file

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
2

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
96 memudahkan untuk mencari file secara rekursif di subdirektori juga

>>>

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
9

Contoh ini memanfaatkan

>>> import os
>>> entries = os.listdir('my_directory/')
_19 untuk mencari
>>> import os
>>> entries = os.listdir('my_directory/')
07 file di direktori dan subdirektori saat ini. Melewati
>>> import os
>>> entries = os.listdir('my_directory/')
_21 sebagai argumen untuk
>>> import os
>>> entries = os.listdir('my_directory/')
22 membuatnya mencari
>>> import os
>>> entries = os.listdir('my_directory/')
07 file di direktori saat ini dan subdirektori apa pun. Perbedaan antara
>>> import os
>>> entries = os.listdir('my_directory/')
19 dan
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
62 adalah
>>> import os
>>> entries = os.listdir('my_directory/')
22 mengembalikan iterator, bukan daftar

Menjalankan program di atas menghasilkan yang berikut ini

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
0

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_05 berisi metode serupa untuk membuat daftar file yang fleksibel. Contoh di bawah menunjukkan bagaimana Anda dapat menggunakan
>>> import os
>>> entries = os.listdir('my_directory/')
_28 untuk mencantumkan jenis file yang dimulai dengan huruf
>>> import os
>>> entries = os.listdir('my_directory/')
29

>>>

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
1

Memanggil

>>> import os
>>> entries = os.listdir('my_directory/')
_30 mengembalikan objek generator yang menunjuk ke semua file di direktori saat ini yang dimulai dengan huruf
>>> import os
>>> entries = os.listdir('my_directory/')
29 dalam ekstensi file mereka

>>> import os
>>> entries = os.listdir('my_directory/')
_32 mirip dengan ________19______33 yang dibahas di atas. Seperti yang Anda lihat,
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
05 menggabungkan banyak fitur terbaik dari modul
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
02,
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
03, dan
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
96 menjadi satu modul tunggal, yang membuatnya menyenangkan untuk digunakan

Sebagai rekap, berikut adalah tabel fungsi yang telah kami bahas di bagian ini

FunctionDescription

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
60Tests if a string starts with a specified pattern and returns
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
69 or
>>> import os
>>> entries = os.listdir('my_directory/')
40
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
59Tests if a string ends with a specified pattern and returns
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
69 or
>>> import os
>>> entries = os.listdir('my_directory/')
40
>>> import os
>>> entries = os.listdir('my_directory/')
44Tests whether the filename matches the pattern and returns
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
69 or
>>> import os
>>> entries = os.listdir('my_directory/')
40
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
62Returns a list of filenames that match a pattern
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
63Finds patterns in path names

Hilangkan iklan

Melintasi Direktori dan Memproses File

Tugas pemrograman yang umum adalah menjalankan pohon direktori dan memproses file di pohon. Mari jelajahi bagaimana fungsi Python bawaan

>>> import os
>>> entries = os.listdir('my_directory/')
49 dapat digunakan untuk melakukan ini.
>>> import os
>>> entries = os.listdir('my_directory/')
_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

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_2

Berikut ini adalah contoh yang menunjukkan cara membuat daftar semua file dan direktori di pohon direktori menggunakan

>>> import os
>>> entries = os.listdir('my_directory/')
49

>>> import os
>>> entries = os.listdir('my_directory/')
_49 default untuk melintasi direktori dengan cara top-down

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_3

>>> import os
>>> entries = os.listdir('my_directory/')
_49 mengembalikan tiga nilai pada setiap iterasi loop

  1. Nama folder saat ini

  2. Daftar folder di folder saat ini

  3. Daftar file di folder saat ini

Pada setiap iterasi, ia mencetak nama subdirektori dan file yang ditemukannya

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_4

Untuk melintasi pohon direktori dengan cara bottom-up, berikan argumen kata kunci

>>> import os
>>> entries = os.listdir('my_directory/')
54 ke
>>> import os
>>> entries = os.listdir('my_directory/')
49

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_5

Melewati argumen

>>> import os
>>> entries = os.listdir('my_directory/')
_54 akan membuat
>>> import os
>>> entries = os.listdir('my_directory/')
49 mencetak file yang ditemukannya di subdirektori terlebih dahulu

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_6

Seperti 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,

>>> import os
>>> entries = os.listdir('my_directory/')
_58 tidak masuk ke tautan simbolis yang menyelesaikan ke direktori. Perilaku ini dapat diganti dengan memanggilnya dengan argumen
>>> import os
>>> entries = os.listdir('my_directory/')
59

Membuat File dan Direktori Sementara

Python menyediakan modul praktis untuk membuat file dan direktori sementara yang disebut

>>> import os
>>> entries = os.listdir('my_directory/')
60

>>> import os
>>> entries = os.listdir('my_directory/')
_60 dapat digunakan untuk membuka dan menyimpan data sementara di file atau direktori saat program Anda sedang berjalan.
>>> import os
>>> entries = os.listdir('my_directory/')
_60 menangani penghapusan file-file sementara ketika program Anda selesai dengan mereka

Berikut cara membuat file sementara

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_7

Langkah pertama adalah mengimpor

>>> import os
>>> entries = os.listdir('my_directory/')
_63 dari modul
>>> import os
>>> entries = os.listdir('my_directory/')
60. Selanjutnya, buat file seperti objek menggunakan metode
>>> import os
>>> entries = os.listdir('my_directory/')
65 dengan memanggilnya dan meneruskan mode tempat Anda ingin membuka file. Ini akan membuat dan membuka file yang dapat digunakan sebagai tempat penyimpanan sementara

Pada contoh di atas, modenya adalah

>>> import os
>>> entries = os.listdir('my_directory/')
_66, yang membuat
>>> import os
>>> entries = os.listdir('my_directory/')
60 membuat file teks sementara dalam mode tulis. Tidak perlu memberikan file sementara nama file karena akan dihancurkan setelah skrip selesai dijalankan

Setelah 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

>>> import os
>>> entries = os.listdir('my_directory/')
60, gunakan
>>> import os
>>> entries = os.listdir('my_directory/')
69

File dan direktori sementara yang dibuat menggunakan

>>> import os
>>> entries = os.listdir('my_directory/')
60 disimpan dalam direktori sistem khusus untuk menyimpan file sementara. Python mencari daftar direktori standar untuk menemukan direktori tempat pengguna dapat membuat file

Di Windows, direktorinya adalah

>>> import os
>>> entries = os.listdir('my_directory/')
_71,
>>> import os
>>> entries = os.listdir('my_directory/')
72,
>>> import os
>>> entries = os.listdir('my_directory/')
73, dan
>>> import os
>>> entries = os.listdir('my_directory/')
74, dalam urutan itu. Di semua platform lain, direktorinya adalah
>>> import os
>>> entries = os.listdir('my_directory/')
75,
>>> import os
>>> entries = os.listdir('my_directory/')
76, dan
>>> import os
>>> entries = os.listdir('my_directory/')
77, dalam urutan itu. Sebagai upaya terakhir,
>>> import os
>>> entries = os.listdir('my_directory/')
_60 akan menyimpan file dan direktori sementara di direktori saat ini

>>> import os
>>> entries = os.listdir('my_directory/')
_79 juga merupakan pengelola konteks sehingga dapat digunakan bersama dengan pernyataan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
27. Menggunakan manajer konteks menangani penutupan dan penghapusan file secara otomatis setelah dibaca

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_8

Ini membuat file sementara dan membaca data darinya. Segera setelah konten file dibaca, file sementara ditutup dan dihapus dari sistem file

>>> import os
>>> entries = os.listdir('my_directory/')
_60 juga dapat digunakan untuk membuat direktori sementara. Mari kita lihat bagaimana Anda dapat melakukan ini menggunakan
>>> import os
>>> entries = os.listdir('my_directory/')
82

>>>

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
9

Memanggil

>>> import os
>>> entries = os.listdir('my_directory/')
_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
>>> import os
>>> entries = os.listdir('my_directory/')
84. Baris ketiga mencetak nama direktori sementara, dan
>>> import os
>>> entries = os.listdir('my_directory/')
85 mengonfirmasi apakah direktori tersebut benar-benar dibuat dalam sistem file

Setelah manajer konteks keluar dari konteks, direktori sementara dihapus dan panggilan ke

>>> import os
>>> entries = os.listdir('my_directory/')
85 mengembalikan
>>> import os
>>> entries = os.listdir('my_directory/')
40, yang berarti direktori berhasil dihapus

Hilangkan iklan

Menghapus File dan Direktori

Anda dapat menghapus file tunggal, direktori, dan seluruh pohon direktori menggunakan metode yang ditemukan di modul

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
02,
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
04, dan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
05. Bagian berikut menjelaskan cara menghapus file dan direktori yang tidak diperlukan lagi

Menghapus File dengan Python

Untuk menghapus satu file, gunakan

>>> import os
>>> entries = os.listdir('my_directory/')
_91,
>>> import os
>>> entries = os.listdir('my_directory/')
92. atau
>>> import os
>>> entries = os.listdir('my_directory/')
_93

>>> import os
>>> entries = os.listdir('my_directory/')
_92 dan
>>> import os
>>> entries = os.listdir('my_directory/')
93 secara semantik identik. Untuk menghapus file menggunakan
>>> import os
>>> entries = os.listdir('my_directory/')
_92, lakukan hal berikut

>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
0

Menghapus file menggunakan

>>> import os
>>> entries = os.listdir('my_directory/')
_93 mirip dengan cara Anda melakukannya menggunakan
>>> import os
>>> entries = os.listdir('my_directory/')
92

>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
1

Memanggil

>>> import os
>>> entries = os.listdir('my_directory/')
_99 atau
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
00 pada file akan menghapus file dari sistem file. Kedua fungsi ini akan melempar
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
_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
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
56

>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
2

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
62 memeriksa apakah
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
04 sebenarnya adalah sebuah file. Jika ya, itu dihapus oleh panggilan ke
>>> import os
>>> entries = os.listdir('my_directory/')
92. Jika
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
_04 menunjuk ke folder, pesan kesalahan dicetak ke konsol

Contoh berikut menunjukkan cara menggunakan penanganan pengecualian untuk menangani kesalahan saat menghapus file

>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
3

Kode di atas mencoba menghapus file terlebih dahulu sebelum memeriksa jenisnya. Jika

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
_04 sebenarnya bukan file,
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
56 yang dilemparkan ditangani dalam klausa
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
09, dan pesan kesalahan dicetak ke konsol. Pesan kesalahan yang dicetak diformat menggunakan f-string Python

Terakhir, Anda juga dapat menggunakan

>>> import os
>>> entries = os.listdir('my_directory/')
_91 untuk menghapus file

>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
4

Ini membuat objek

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_31 bernama
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
04 yang menunjuk ke sebuah file. Menelepon
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
00 pada
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
04 akan menghapus
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
15. Jika
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
_04 menunjuk ke direktori,
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
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,
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
18 akan dimunculkan

Menghapus Direktori

Pustaka standar menawarkan fungsi-fungsi berikut untuk menghapus direktori

  • >>> os.listdir('my_directory/')
    ['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
    
    19
  • >>> os.listdir('my_directory/')
    ['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
    
    20
  • >>> os.listdir('my_directory/')
    ['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
    
    21

Untuk menghapus satu direktori atau folder, gunakan

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
19 atau
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
23. Kedua fungsi ini hanya berfungsi jika direktori yang Anda coba hapus kosong. Jika direktori tidak kosong,
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
56 dimunculkan. Berikut cara menghapus folder

>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
5

Di sini, direktori

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
_25 dihapus dengan meneruskan jalurnya ke
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
19. Jika direktori tidak kosong, pesan kesalahan akan dicetak di layar

>>>

>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
6

Atau, Anda dapat menggunakan

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_05 untuk menghapus direktori

>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
7

Di sini, Anda membuat objek

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_31 yang menunjuk ke direktori yang akan dihapus. Memanggil
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
29 pada objek ________0______31 akan menghapusnya jika kosong

Hilangkan iklan

Menghapus Seluruh Pohon Direktori

Untuk menghapus direktori yang tidak kosong dan seluruh pohon direktori, Python menawarkan

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
21

>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
8

Segala sesuatu di

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
_25 dihapus ketika
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
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
>>> import os
>>> entries = os.listdir('my_directory/')
49

>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
_9

Ini menyusuri pohon direktori dan mencoba menghapus setiap direktori yang ditemukannya. Jika direktori tidak kosong,

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
56 dimunculkan dan direktori tersebut dilewati. Tabel di bawah mencantumkan fungsi yang tercakup dalam bagian ini

FunctionDescription

>>> import os
>>> entries = os.listdir('my_directory/')
92Deletes file dan tidak menghapus direktori
>>> import os
>>> entries = os.listdir('my_directory/')
93 identik dengan
>>> import os
>>> entries = os.listdir('my_directory/')
92 dan menghapus satu file____
>>> import os
>>> entries = os.listdir('my_directory/')
91.deletes.

Menyalin, Memindahkan, dan Mengganti Nama File dan Direktori

Python dikirimkan dengan modul

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_04.
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_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 direktori

Menyalin File dengan Python

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_04 menawarkan beberapa fungsi untuk menyalin file. Fungsi yang paling umum digunakan adalah
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
_46 dan
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
47. Untuk menyalin file dari satu lokasi ke lokasi lain menggunakan
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
46, lakukan hal berikut

import os

with os.scandir('my_directory/') as entries:
    for entry in entries:
        print(entry.name)
0

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
46 sebanding dengan perintah
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
50 dalam sistem berbasis UNIX.
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
51 akan menyalin file
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
52 ke lokasi yang ditentukan di
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
53. Jika
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
_53 adalah sebuah file, isi dari file tersebut diganti dengan isi dari
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
52. Jika
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
_53 adalah sebuah direktori, maka
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
52 akan disalin ke direktori tersebut.
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
46 hanya menyalin konten file dan izin file. Metadata lain seperti waktu pembuatan dan modifikasi file tidak dipertahankan

Untuk mempertahankan semua metadata file saat menyalin, gunakan

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
47

import os

with os.scandir('my_directory/') as entries:
    for entry in entries:
        print(entry.name)
1

Menggunakan

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
_60 mempertahankan detail tentang file seperti waktu akses terakhir, bit izin, waktu modifikasi terakhir, dan bendera

Menyalin Direktori

Sementara

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
_46 hanya menyalin satu file,
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
62 akan menyalin seluruh direktori dan semua yang ada di dalamnya.
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
63 mengambil dua argumen. direktori sumber dan direktori tujuan tempat file dan folder akan disalin

Berikut adalah contoh cara menyalin konten dari satu folder ke lokasi lain

>>>

import os

with os.scandir('my_directory/') as entries:
    for entry in entries:
        print(entry.name)
2

Dalam contoh ini,

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
_64 menyalin konten
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
65 ke lokasi baru
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
66 dan mengembalikan direktori tujuan. Direktori tujuan tidak boleh sudah ada. Itu akan dibuat serta direktori induk yang hilang.
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
62 adalah cara yang baik untuk membuat cadangan file Anda

Hilangkan iklan

Memindahkan File dan Direktori

Untuk memindahkan file atau direktori ke lokasi lain, gunakan

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
68

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
52 adalah file atau direktori yang akan dipindahkan dan
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
53 adalah tujuan

>>> ________31______3

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
71 memindahkan
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
72 ke
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
73 jika
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
73 ada. Jika
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
_73 tidak ada,
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
72 akan diganti namanya menjadi
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
88

Mengganti Nama File dan Direktori

Python menyertakan

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
78 untuk mengganti nama file dan direktori

>>>

import os

with os.scandir('my_directory/') as entries:
    for entry in entries:
        print(entry.name)
4

Baris di atas akan mengganti nama

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
_79 menjadi
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
80. Jika jalur tujuan mengarah ke direktori, itu akan memunculkan
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
56

Cara lain untuk mengganti nama file atau direktori adalah dengan menggunakan

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
82 dari modul
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
05

>>>

import os

with os.scandir('my_directory/') as entries:
    for entry in entries:
        print(entry.name)
5

Untuk mengganti nama file menggunakan

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_05, Anda terlebih dahulu membuat objek
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
22 yang berisi jalur ke file yang ingin Anda ganti. Langkah selanjutnya adalah memanggil
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
_82 pada objek path dan meneruskan nama file baru untuk file atau direktori yang Anda ganti namanya

Pengarsipan

Arsip 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 ZIP

Modul

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
_87 adalah modul tingkat rendah yang merupakan bagian dari Perpustakaan Standar Python.
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
87 memiliki fungsi yang memudahkan untuk membuka dan mengekstrak file ZIP. Untuk membaca konten file ZIP, hal pertama yang harus dilakukan adalah membuat objek
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
89.
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
89 objek mirip dengan objek file yang dibuat menggunakan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
07.
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
89 juga merupakan manajer konteks dan karenanya mendukung pernyataan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
27

import os

with os.scandir('my_directory/') as entries:
    for entry in entries:
        print(entry.name)
6

Di sini, Anda membuat objek

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
_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
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
87. Arsip
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
_96 pada contoh di atas dibuat dari direktori bernama
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
87 yang berisi total 5 file dan 1 subdirektori

import os

with os.scandir('my_directory/') as entries:
    for entry in entries:
        print(entry.name)
7

Untuk mendapatkan daftar file dalam arsip, panggil

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
98 pada objek
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
89

import os

with os.scandir('my_directory/') as entries:
    for entry in entries:
        print(entry.name)
8

Ini menghasilkan daftar

import os

with os.scandir('my_directory/') as entries:
    for entry in entries:
        print(entry.name)
_9

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_00 mengembalikan daftar nama file dan direktori dalam arsip. Untuk mengambil informasi tentang file dalam arsip, gunakan
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
01

sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
0

Inilah hasilnya

sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
1

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_01 mengembalikan objek
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
03 yang menyimpan informasi tentang satu anggota arsip. Untuk mendapatkan informasi tentang file dalam arsip, Anda meneruskan jalurnya sebagai argumen ke
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
01. Menggunakan
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_05, Anda dapat mengambil informasi tentang anggota arsip seperti tanggal file terakhir diubah, ukuran terkompresi, dan nama file lengkapnya. Mengakses
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_06 mengambil ukuran asli file dalam byte

Contoh berikut menunjukkan cara mengambil detail lebih lanjut tentang file yang diarsipkan di Python REPL. Asumsikan modul

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
87 telah diimpor dan
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
08 adalah objek yang sama dengan yang Anda buat pada contoh sebelumnya

>>>

sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
2

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_08 berisi detail tentang
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
10 seperti ukurannya saat dikompresi dan path lengkapnya

Baris pertama menunjukkan cara mengambil tanggal modifikasi terakhir file. Baris berikutnya menunjukkan cara mendapatkan ukuran file setelah kompresi. Baris terakhir menunjukkan jalur lengkap

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
10 di arsip

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
89 mendukung protokol manajer konteks, itulah sebabnya Anda dapat menggunakannya dengan pernyataan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
27. Melakukan ini secara otomatis menutup objek
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
_89 setelah Anda selesai melakukannya. Mencoba membuka atau mengekstrak file dari objek ________21______89 yang tertutup akan menghasilkan kesalahan

Hilangkan iklan

Mengekstrak Arsip ZIP

Modul

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
_87 memungkinkan Anda mengekstrak satu atau lebih file dari arsip ZIP melalui
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
17 dan
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
18

Metode ini mengekstrak file ke direktori saat ini secara default. Keduanya mengambil parameter

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_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

>>>

sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
3

Baris kode ketiga adalah panggilan ke

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
14, yang menunjukkan bahwa direktori saat ini hanya memiliki satu file,
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
96

Selanjutnya, Anda membuka

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
_96 dalam mode baca dan memanggil
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
17 untuk mengekstrak
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
67 darinya.
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_17 mengembalikan jalur file lengkap dari file yang diekstraksi. Karena tidak ada jalur yang ditentukan,
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_17 mengekstrak
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
67 ke direktori saat ini

Baris 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

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
28.
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_18 membuat
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
30 dan mengekstrak isi
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
96 ke dalamnya. Baris terakhir menutup arsip ZIP

Mengekstrak Data Dari Arsip yang Dilindungi Kata Sandi

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
87 mendukung ekstraksi ZIP yang dilindungi kata sandi. Untuk mengekstrak file ZIP yang dilindungi kata sandi, berikan kata sandi ke metode
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
17 atau
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
18 sebagai argumen

>>>

sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
4

Ini membuka arsip

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_35 dalam mode baca. Kata sandi diberikan ke
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_18, dan konten arsip diekstrak ke
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
30. Arsip ditutup secara otomatis setelah ekstraksi selesai berkat pernyataan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
27

Membuat Arsip ZIP Baru

Untuk membuat arsip ZIP baru, Anda membuka objek

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
89 dalam mode tulis (
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
09) dan menambahkan file yang ingin Anda arsipkan

>>>

sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
5

Dalam contoh,

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_41 dibuka dalam mode tulis dan setiap file di
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
42 ditambahkan ke arsip. Saat rangkaian pernyataan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
27 selesai,
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
41 ditutup. Membuka file ZIP dalam mode tulis akan menghapus konten arsip dan membuat arsip baru

Untuk menambahkan file ke arsip yang sudah ada, buka objek

>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
89 dalam mode tambahkan lalu tambahkan file

>>>

sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
6

Di sini, Anda membuka arsip

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
46 yang Anda buat pada contoh sebelumnya dalam mode penambahan. Membuka objek
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
_89 dalam mode append memungkinkan Anda menambahkan file baru ke file ZIP tanpa menghapus isinya saat ini. Setelah menambahkan file ke file ZIP, pernyataan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
27 keluar dari konteks dan menutup file ZIP

Membuka Arsip TAR

File TAR adalah arsip file yang tidak terkompresi seperti ZIP. Mereka dapat dikompres menggunakan metode kompresi gzip, bzip2, dan lzma. Kelas

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_49 memungkinkan membaca dan menulis arsip TAR

Lakukan ini untuk membaca dari arsip

sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
7

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_50 objek terbuka seperti kebanyakan objek mirip file. Mereka memiliki fungsi
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_07 yang mengambil mode yang menentukan bagaimana file akan dibuka

Gunakan mode

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
52,
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
53 atau
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
54 untuk membuka file TAR yang tidak terkompresi untuk masing-masing membaca, menulis, dan menambahkan. Untuk membuka file TAR terkompresi, berikan argumen mode ke
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
55 dalam bentuk
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
56. Tabel di bawah mencantumkan mode yang memungkinkan file TAR dapat dibuka

ModeAction

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
08Opens archive for reading with transparent compression
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
58Opens archive for reading with gzip compression
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
59Opens archive for reading with bzip2 compression
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
60Opens archive for reading with lzma compression
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
09Opens archive for uncompressed writing
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
62Opens archive for gzip compressed writing
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
63Opens archive for lzma compressed writing
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
64Opens archive for appending with no compression

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_65 default ke mode
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
52. Untuk membaca file TAR yang tidak terkompresi dan mengambil nama file di dalamnya, gunakan
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
67

>>> ________36______8

Ini mengembalikan daftar dengan nama isi arsip

Catatan. Untuk tujuan menunjukkan kepada Anda bagaimana menggunakan metode objek

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
50 yang berbeda, file TAR dalam contoh dibuka dan ditutup secara manual dalam sesi REPL interaktif

Berinteraksi 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

>>>

sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
9

Dalam contoh ini, Anda menelusuri daftar file yang dikembalikan oleh

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
69 dan mencetak setiap atribut file. Objek yang dikembalikan oleh
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_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 sistem

Mengekstrak File Dari Arsip TAR

Di bagian ini, Anda akan mempelajari cara mengekstrak file dari arsip TAR menggunakan metode berikut

  • >>> entries = os.listdir('my_directory/')
    >>> for entry in entries:
    ..     print(entry)
    ...
    ...
    sub_dir_c
    file1.py
    sub_dir_b
    file3.txt
    file2.csv
    sub_dir
    
    _17
  • >>> entries = os.listdir('my_directory/')
    >>> for entry in entries:
    ..     print(entry)
    ...
    ...
    sub_dir_c
    file1.py
    sub_dir_b
    file3.txt
    file2.csv
    sub_dir
    
    _72
  • >>> entries = os.listdir('my_directory/')
    >>> for entry in entries:
    ..     print(entry)
    ...
    ...
    sub_dir_c
    file1.py
    sub_dir_b
    file3.txt
    file2.csv
    sub_dir
    
    _18

Untuk mengekstrak satu file dari arsip TAR, gunakan

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
74, dengan meneruskan nama file

>>>

from pathlib import Path

entries = Path('my_directory/')
for entry in entries.iterdir():
    print(entry.name)
0

File

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_75 diekstraksi dari arsip ke sistem file. Memanggil
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_14 menegaskan bahwa
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
75 file berhasil diekstraksi ke direktori saat ini. Untuk membongkar atau mengekstrak semuanya dari arsip, gunakan
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
18

>>>

from pathlib import Path

entries = Path('my_directory/')
for entry in entries.iterdir():
    print(entry.name)
1

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_18 memiliki
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
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

from pathlib import Path

entries = Path('my_directory/')
for entry in entries.iterdir():
    print(entry.name)
2

Untuk mengekstrak objek file untuk dibaca atau ditulis, gunakan

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
72, yang menggunakan nama file atau objek
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
83 untuk diekstraksi sebagai argumen.
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_72 mengembalikan objek seperti file yang dapat dibaca dan digunakan

>>>

from pathlib import Path

entries = Path('my_directory/')
for entry in entries.iterdir():
    print(entry.name)
3

Arsip yang dibuka harus selalu ditutup setelah dibaca atau ditulis. Untuk menutup arsip, panggil

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_85 pada pegangan file arsip atau gunakan pernyataan
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
27 saat membuat
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
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 file

Membuat Arsip TAR Baru

Inilah cara Anda melakukannya

>>>

from pathlib import Path

entries = Path('my_directory/')
for entry in entries.iterdir():
    print(entry.name)
4

Pertama, Anda membuat daftar file untuk ditambahkan ke arsip sehingga Anda tidak perlu menambahkan setiap file secara manual

Baris berikutnya menggunakan manajer konteks

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
27 untuk membuka arsip baru bernama
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
89 dalam mode tulis. Membuka arsip dalam mode tulis(
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
53) memungkinkan Anda untuk menulis file baru ke arsip. Semua file yang ada di arsip akan dihapus dan arsip baru akan dibuat

Setelah arsip dibuat dan diisi, manajer konteks

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
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 dalamnya

Untuk menambahkan file baru ke arsip yang sudah ada, buka arsip dalam mode tambahkan (

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
54)

>>>

from pathlib import Path

entries = Path('my_directory/')
for entry in entries.iterdir():
    print(entry.name)
5

Membuka arsip dalam mode penambahan memungkinkan Anda menambahkan file baru ke dalamnya tanpa menghapus file yang sudah ada di dalamnya

Bekerja Dengan Arsip Terkompresi

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_50 juga dapat membaca dan menulis arsip TAR yang dikompres menggunakan kompresi gzip, bzip2, dan lzma. Untuk membaca atau menulis ke arsip terkompresi, gunakan
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
55, meneruskan mode yang sesuai untuk jenis kompresi

Misalnya, untuk membaca atau menulis data ke arsip TAR yang dikompres menggunakan gzip, gunakan mode

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
95 atau
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
96 masing-masing

>>>

from pathlib import Path

entries = Path('my_directory/')
for entry in entries.iterdir():
    print(entry.name)
6

Mode

>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
_96 membuka arsip untuk tulisan terkompresi gzip dan
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
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 baru

Cara Lebih Mudah Membuat Arsip

Pustaka Standar Python juga mendukung pembuatan arsip TAR dan ZIP menggunakan metode tingkat tinggi dalam modul

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
04. Utilitas pengarsipan di
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
04 memungkinkan Anda membuat, membaca, dan mengekstrak arsip ZIP dan TAR. Utilitas ini mengandalkan modul
>>> entries = os.listdir('my_directory/')
>>> for entry in entries:
..     print(entry)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
50 dan
>>> os.listdir('my_directory/')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
87 level yang lebih rendah

Bekerja Dengan Arsip Menggunakan

>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
03

>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
03 membutuhkan setidaknya dua argumen. nama arsip dan format arsip

Secara default, ini memampatkan semua file di direktori saat ini ke dalam format arsip yang ditentukan dalam argumen

>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
05. Anda dapat memberikan argumen
>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
_06 opsional untuk mengompres file di direktori yang berbeda.
>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
07 mendukung
>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
08,
>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
09,
>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
10, dan
>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
11 format arsip

Ini adalah cara membuat arsip TAR menggunakan

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
04

from pathlib import Path

entries = Path('my_directory/')
for entry in entries.iterdir():
    print(entry.name)
7

Ini menyalin semua yang ada di

>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
13 dan membuat arsip bernama
>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
14 di sistem file dan mengembalikan namanya. Untuk mengekstrak arsip, hubungi
>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
15

from pathlib import Path

entries = Path('my_directory/')
for entry in entries.iterdir():
    print(entry.name)
8

Memanggil

>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
_15 dan meneruskan nama arsip dan direktori tujuan mengekstrak konten
>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
14 ke
>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
18. Arsip ZIP dapat dibuat dan diekstraksi dengan cara yang sama

Membaca Banyak File

Python mendukung membaca data dari beberapa input stream atau dari daftar file melalui modul

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
06. Modul ini memungkinkan Anda mengulang konten dari satu atau lebih file teks dengan cepat dan mudah. Inilah cara umum
with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_06 digunakan

from pathlib import Path

entries = Path('my_directory/')
for entry in entries.iterdir():
    print(entry.name)
_9

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_06 mendapatkan inputnya dari argumen baris perintah yang diteruskan ke
>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
22 secara default

Menggunakan

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_06 untuk Mengulangi Banyak File

Mari gunakan

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_06 untuk membuat versi kasar dari utilitas umum UNIX
>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
25. Utilitas
>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
_25 membaca file secara berurutan, menuliskannya ke keluaran standar. Ketika diberi lebih dari satu file dalam argumen baris perintahnya,
>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
25 akan menggabungkan file teks dan menampilkan hasilnya di terminal

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_00

Menjalankan ini pada dua file teks di direktori saya saat ini menghasilkan keluaran berikut

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_01

with open('data.txt', 'w') as f:
    data = 'some data to be written to the file'
    f.write(data)
_06 memungkinkan Anda untuk mengambil lebih banyak informasi tentang setiap baris seperti apakah itu baris pertama atau tidak (
>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
29), nomor baris (
>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
30), dan nama file (
>>> import os
>>> entries = os.scandir('my_directory/')
>>> entries
<posix.ScandirIterator object at 0x7f5b047f3690>
31). Anda dapat membaca selengkapnya di sini

Kesimpulan

Anda 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

  • Dapatkan konten direktori dan properti file
  • Buat direktori dan pohon direktori
  • Temukan pola dalam nama file
  • Buat file dan direktori sementara
  • Pindahkan, ganti nama, salin, dan hapus file atau direktori
  • Membaca dan mengekstrak data dari berbagai jenis arsip
  • Baca banyak file secara bersamaan menggunakan
    with open('data.txt', 'w') as f:
        data = 'some data to be written to the file'
        f.write(data)
    
    06

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

Bagaimana Anda mengakses data dari file dengan python?

Kirimi Saya Trik Python »

Tentang Vuyisile Ndlovu

Bagaimana Anda mengakses data dari file dengan python?
Bagaimana Anda mengakses data dari file dengan python?

Pengembang Django dan penggila sumber terbuka

» Lebih lanjut tentang Vuyisile


Setiap tutorial di Real Python dibuat oleh tim pengembang sehingga memenuhi standar kualitas tinggi kami. Anggota tim yang mengerjakan tutorial ini adalah

Bagaimana Anda mengakses data dari file dengan python?

Daud

Bagaimana Anda mengakses data dari file dengan python?

Geir Arne

Bagaimana Anda mengakses data dari file dengan python?

Joanna

Master Keterampilan Python Dunia Nyata Dengan Akses Tanpa Batas ke Python Nyata

Bagaimana Anda mengakses data dari file dengan python?

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
Dengan Akses Tak Terbatas ke Real Python

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 Email

Apa 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