Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah saya boleh mendapatkan senarai fail yang diisih dalam direktori mengikut tarikh penciptaan menggunakan Python?

Bagaimanakah saya boleh mendapatkan senarai fail yang diisih dalam direktori mengikut tarikh penciptaan menggunakan Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-09 12:02:02832semak imbas

How can I get a sorted list of files in a directory by creation date using Python?

Mendapatkan Penyenaraian Direktori Diisih Mengikut Tarikh Penciptaan Menggunakan Python

Apabila menavigasi direktori, keperluan sering timbul untuk mendapatkan senarai kandungannya yang diisih mengikut kriteria tertentu, seperti tarikh penciptaan. Dalam Python, tugas ini boleh dicapai dengan mudah.

Pendekatan Cadangan:

Untuk mencapai matlamat ini, gabungan modul manipulasi sistem fail terbina Python dan fungsi pengisihan ialah bekerja. Coretan kod berikut menggambarkan proses ini:

import glob
import os

search_dir = "/mydir/"
files = [os.path.join(search_dir, f) for f in os.listdir(search_dir) if os.path.isfile(f)]
files.sort(key=lambda x: os.path.getmtime(x))

Coretan kod ini bermula dengan mendapatkan senarai semua fail dalam direktori yang ditentukan menggunakan os.listdir(). Selepas itu, sebarang item bukan fail (cth., direktori, pautan) ditapis menggunakan os.path.isfile(). Untuk memastikan laluan fail yang betul, setiap nama fail diawali dengan laluan direktori carian.

Fail kemudian diisih mengikut masa pengubahsuaiannya menggunakan fungsi os.path.getmtime(). Fungsi ini mengembalikan masa pengubahsuaian terakhir fail dalam format angka. Dengan menghantar fungsi ini sebagai hujah utama kepada fungsi sorted(), fail disusun dalam susunan kronologi, dengan fail yang paling baru dibuat muncul dahulu.

Pendekatan Alternatif:

Pendekatan alternatif melibatkan penggunaan modul glob untuk menapis fail dan mendapatkan senarai laluan fail mutlak:

import glob
import os

search_dir = "/mydir/"
# This glob will look for all files and exclude any directories
files = [f for f in glob.glob(f"{search_dir}/**", recursive=True) if os.path.isfile(f)]
files.sort(key=lambda x: os.path.getmtime(x))

Kod ini pada asasnya mencari keseluruhan kandungan direktori yang ditentukan dan subdirektorinya, termasuk semua fail dan tidak termasuk mana-mana direktori. Fungsi glob.glob() membolehkan padanan nama fail yang lebih fleksibel jika diperlukan.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mendapatkan senarai fail yang diisih dalam direktori mengikut tarikh penciptaan menggunakan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn