Fáðu lista yfir skráar- og möppuheiti í Python.

Viðskipti

Til að fá lista yfir skráar- og möppuheiti (möppunöfn) í Python, notaðu os module aðgerðina os.listdir().

os.listdir(path=’.’)
Skilar lista sem inniheldur færsluheitin í möppunni sem tilgreind er með slóð.
os — Miscellaneous operating system interfaces — Python 3.10.0 Documentation

OS-einingin er innifalin í venjulegu bókasafni og þarf ekki að setja hana upp. Hins vegar er „innflutningur“ krafist.

Eftirfarandi upplýsingar eru veittar hér.

  • Fáðu lista yfir bæði skráar- og möppuheiti.
  • Fáðu aðeins lista yfir skráarnöfn
  • Fáðu aðeins lista yfir nöfn möppu

Eftirfarandi er dæmi um skráar (möppu) uppbyggingu.

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

Auk os.listdir() geturðu líka notað glob-eininguna til að fá lista yfir skráar- og möppuheiti (möppunöfn). glob gerir þér kleift að tilgreina skilyrði með því að nota jokertákn (*), o.s.frv., og taka afturkvæmt með undirskrár.

Í Python 3.4 og síðar er einnig hægt að fá lista yfir skrár og möppur með því að nota pathlib eininguna, sem getur meðhöndlað slóðir sem hluti. Eins og globs hér að ofan er einnig hægt að nota það skilyrt og endurkvæmt.

Fáðu lista yfir bæði skráar- og möppuheiti.

Ef þú notar os.listdir() eins og það er, mun það skila lista yfir bæði skráar- og möppuheiti.

import os

path = "./testdir"

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

Það sem þú færð er listi yfir slóðastrengi.

Fáðu aðeins lista yfir skráarnöfn

Ef þú vilt fá lista yfir aðeins skráarnöfn, notaðu os.path.isfile() aðgerðina til að ákvarða hvort slóðin sé skrá. að senda aðeins skráarnafnið sem rök fyrir os.path.isfile() fallið mun ekki virka, svo sendu alla leiðina eins og sýnt er hér að neðan.
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']

Fáðu aðeins lista yfir nöfn möppu

Ef þú vilt fá lista yfir skráanöfn eingöngu skaltu nota os.path.isdir() á sama hátt.

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']
Copied title and URL