keresse meg az összes fájlt egy könyvtárban
hogyan találunk egy fájlt a számítógépen Python? Sok módja van ennek, kezdjük az elsővel.
operációs rendszer használata.listdir ()
csak importálnia kell az os modult, és használhatja az operációs rendszert.listdir funkció, hogy képes legyen látni az összes fájlt egy könyvtárban. A Python 3, ha nem tesz semmit, mint érv a kerek zárójelben, akkor visszaad egy listát az összes fájlt, mappát az aktuális könyvtár., A Pyton 2-ben os-t kell használni.listdir(“.”) az aktuális könyvtárban található fájlok megtekintéséhez.
# First tryimport osf_list = os.listdir()
Ha egy adott könyvtárat szeretne, akkor az elérési utat argumentumként kell elhelyeznie.
os.listdir("C:\\documents")
ebben a példában, akkor nézd meg a fájlokat a mappában dokumentumok a merevlemez c:
os.listdir (): fájlok beszerzése a jelenlegi dir-ben (Python 3)
a legegyszerűbb módja annak, hogy a fájlt a jelenlegi Dir-ben a Python 3-ban lehessen., Ez nagyon egyszerű, használja az operációs rendszer modul és a listdir () funkciót, és akkor a fájlt, hogy dir (és esetleges mappák, amelyek a dir, de nem lesz a fájl az alkönyvtárban, az, hogy használhatja walk-fogok beszélni róla később).
import osarr = os.listdir()arr
a teljes elérési út neve
amint észrevette, a fenti kódban nincs a fájl teljes elérési útja. Ha abszolút elérési útra van szüksége, használhatja az operációs rendszer másik funkcióját.path modul nevű _getfullpathname, amivel a fájlt, hogy kapsz os.listdir () érvként., Vannak más módon, hogy a teljes utat, ahogy ellenőrizni fogjuk később (én helyébe, ahogy azt mexmex, _getfullpathname abspath).
Szerezd meg egy fájltípus teljes elérési útját az összes alkönyvtárba a walk
segítségével, ezt nagyon hasznosnak találom, hogy sok könyvtárban megtaláljam a dolgokat, és segített nekem megtalálni egy fájlt, amelyről nem emlékszem a névre:
import osthisdir = os.getcwd()for r, d, f in os.walk(thisdir): for file in f: if ".docx" in file: print(os.path.join(r, file))
os.listdir (): fájlok beszerzése az aktuális dir-ben (Python 2)
import osarr = os.listdir('.')arr# output:
a
# method 1x = os.listdir('..')# method 2x = os.listdir('/')
fájlok letöltése: os.,listdir () egy adott könyvtárban (Python 2 és 3)
import osarr = os.listdir('F:\\python')arr# output:
Get fájlok egy adott alkönyvtár os.listdir ()
import osx = os.listdir("./content")
os.séta (‘.’)- current directory
import osarr = next(os.walk('.'))arr# output:
glob module – all files
import globprint(glob.glob("*"))# output:
next(os.séta (‘.”) és az os.ösvény.csatlakozz (‘dir’, ‘file’)
következő(os.séta (‘F:\’) – szerezd meg a teljes útvonal – lista megértését
# output#
os.walk-get full path-minden fájl sub dirs
x = x# output#
os.,listdir() – csak txt fájlok
arr_txt = print(arr_txt)# output:
glob – csak txt fájlok
import globx = glob.glob("*.txt")x# output:
A glob, hogy a teljes utat a fájlok
Ha kell, az abszolút elérési út a fájlokat:
Egyéb használja a glob
Ha azt akarom, hogy minden a fájlokat a könyvtárba:
x = glob.glob("*")
a os.ösvény.isfile, hogy elkerüljék a könyvtárak a listában *
segítségével pathlib származó (Python 3.4)
Ha szeretné használni lista megértése
flist =
Get all and only files with os.,séta
csak a fájlokat a következő, majd séta a könyvtárban
import osx = next(os.walk('F://python'))print(x)################################### output:
csak a könyvtárak a következő, majd séta a könyvtárban
import osnext(os.walk('F://python')) # for the current dir use ('.')# output:
**Kap a subdir neveket séta
os.scandir() from python 3.5 on
Ex. 1: hány fájl van az alkönyvtárakban?
ebben a példában keressük az összes könyvtárban és annak alkönyvtáraiban szereplő fájlok számát.
Ex.2: Hogyan lehet másolni az összes fájlt a dir-ről a másikra?,
a parancsfájl, hogy rendeljen a számítógép megtalálni az összes fájlt egy Típus (alapértelmezett: pptx), majd másolja őket egy új mappába.
Ex.3: Hogyan lehet az összes fájlt egy TXT fájlban
abban az esetben, ha txt fájlt szeretne létrehozni az összes fájlnévvel:
példa: hozzon létre egy txt-t a merevlemez összes fájlnevével
A C:\ összes fájlja egy szöveges fájlban
Ez az előző kód rövidebb verziója. Módosítsa azt a mappát, ahol elkezdi megtalálni a fájlokat, ha más pozícióból kell indulnia., Ez a kód létrehoz egy 50 mb szöveges fájlt a számítógépen valami kevesebb, mint 500.000 sor fájlokat a teljes elérési utat.
import oswith open("file.txt", "w", encoding="utf-8") as filewrite: for r, d, f in os.walk("C:\\"): for file in f: filewrite.write(f"{r + file}\n")