Pata orodha ya majina ya faili na saraka kwenye Python.

Biashara

Ili kupata orodha ya majina ya faili na saraka (majina ya folda) katika Python, tumia kazi ya moduli ya os os.listdir().

os.listdir(path=’.’)
Hurejesha orodha iliyo na majina ya ingizo katika saraka iliyobainishwa na njia.
os — Miscellaneous operating system interfaces — Python 3.10.0 Documentation

Moduli ya os imejumuishwa kwenye maktaba ya kawaida na haihitaji kusakinishwa. Walakini, “kuagiza” inahitajika.

Habari ifuatayo imetolewa hapa.

  • Pata orodha ya majina ya faili na saraka.
  • Pata orodha ya majina ya faili pekee
  • Pata orodha ya majina ya saraka pekee

Ufuatao ni mfano wa muundo wa faili (saraka).

.
└── testdir
    ├── dir1
    ├── dir2
    ├── file1
    ├── file2.txt
    └── file3.jpg

Mbali na os.listdir(), unaweza pia kutumia moduli ya globu kupata orodha ya majina ya faili na saraka (majina ya folda). glob hukuruhusu kubainisha masharti kwa kutumia kadi-mwitu (*), n.k., na kujumuisha saraka ndogo kwa kujirudia.

Katika Python 3.4 na baadaye, inawezekana pia kupata orodha ya faili na saraka kwa kutumia moduli ya pathlib, ambayo inaweza kudhibiti njia kama vitu. Kama globu zilizo hapo juu, inaweza pia kutumika kwa masharti na kwa kujirudia.

Pata orodha ya majina ya faili na saraka.

Ukitumia os.listdir() kama ilivyo, itarudisha orodha ya majina ya faili na saraka.

import os

path = "./testdir"

files = os.listdir(path)
print(type(files))  # <class 'list'>
print(files)        # ['dir1', 'dir2', 'file1', 'file2.txt', 'file3.jpg']

Unachopata ni orodha ya kamba za njia.

Pata orodha ya majina ya faili pekee

Ikiwa unataka kupata orodha ya majina ya faili pekee, tumia chaguo la kukokotoa la os.path.isfile() ili kubaini kama njia ni faili. kupitisha tu jina la faili kama hoja ya os.path.isfile() kitendakazi haitafanya kazi, kwa hivyo pitisha njia kamili kama inavyoonyeshwa hapa chini.
os.path.isfile(os.path.join(path, f))

files = os.listdir(path)
files_file = [f for f in files if os.path.isfile(os.path.join(path, f))]
print(files_file)   # ['file1', 'file2.txt', 'file3.jpg']

Pata orodha ya majina ya saraka pekee

Ikiwa unataka kupata orodha ya majina ya saraka pekee, tumia os.path.isdir() kwa njia sawa.

files = os.listdir(path)
files_dir = [f for f in files if os.path.isdir(os.path.join(path, f))]
print(files_dir)    # ['dir1', 'dir2']