Löytää kaikki tiedostot hakemistoon
Kuinka voimme löytää tiedosto pois tietokoneen kanssa Python? On paljon tapoja tehdä se, aloitetaan ensimmäisestä.
os: n avulla.listdir()
Sinun täytyy vain tuoda os moduuli ja voit käyttää käyttöjärjestelmän.listdir-toiminto, joka voi nähdä kaikki tiedostot hakemistossa. Python 3, jos et laita mitään, koska argumentti kierros suluissa, se palauttaa luettelon kaikki tiedostot ja kansio nykyisen hakemiston., Pyton 2: ssa sinun on käytettävä käyttöjärjestelmää.listdir (s.”) nähdä tiedostot nykyisessä hakemistossa.
# First tryimport osf_list = os.listdir()
Jos haluat tietyn hakemiston, polku on asetettava argumentiksi.
os.listdir("C:\\documents")
tässä esimerkissä, voit tarkastella tiedostoja kansioon, asiakirjat kiintolevyn C:
– käyttöjärjestelmä.listdir(): saada tiedostoja nykyinen dir (Python 3)
yksinkertaisin tapa on tiedosto nykyinen dir Python 3 on tämä., Se on todella yksinkertaista, käytä käyttöjärjestelmä-moduulin ja listdir () – toiminto ja sinulla on tiedosto, joka dir (ja mahdollisesti kansioita, jotka ovat dir, mutta sinulla ei ole tiedoston alihakemistoon, että voit käyttää walk – aion puhua siitä myöhemmin).
import osarr = os.listdir()arr
Getting täydellinen polku
Kuten olet huomannut, et on koko polun tiedoston koodi edellä. Jos tarvitset absoluuttisen polun, voit käyttää toista käyttöjärjestelmän funktiota.polku moduuli nimeltään _getfullpathname, laittaa tiedoston, että saat os.listdir () argumenttina., On muitakin tapoja on koko polku, kuten tulemme myöhemmin (vaihdoin, ehdottivat mexmex, _getfullpathname kanssa abspath).
Hae koko polku tyyppi, tiedoston kaikki alihakemistot kanssa kävellä
– mielestäni tämä on erittäin hyödyllistä löytää tavaraa, monet hakemistoja ja se auttoi minua löytämään tiedosto, josta en muista nimeä:
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))
– käyttöjärjestelmä.listdir(): saada tiedostoja nykyinen dir (Python 2)
import osarr = os.listdir('.')arr# output:
mennä ylös hakemisto-puu
# method 1x = os.listdir('..')# method 2x = os.listdir('/')
hae tiedostoja: – käyttöjärjestelmä.,listdir() hakemistoon (Python 2 ja 3)
import osarr = os.listdir('F:\\python')arr# output:
Hae tiedostoja tiettyyn alihakemistoon os.listdir()
import osx = os.listdir("./content")
– käyttöjärjestelmä.kävelymatka(‘.’) – hakemistossa.
import osarr = next(os.walk('.'))arr# output:
loraus moduuli – kaikki tiedostot
import globprint(glob.glob("*"))# output:
seuraava(os.kävelymatka(‘.’) ja os.polku.join (”dir”, ”file”)
next (os.kävelymatkan(’F:\’) – hae koko polku – lista ymmärtämistä
# output#
– käyttöjärjestelmä.walk-get full path-all files in sub dirs
x = x# output#
os.,listdir() – saat vain txt-tiedostot
arr_txt = print(arr_txt)# output:
glob – saada vain txt-tiedostot
import globx = glob.glob("*.txt")x# output:
Käyttämällä loraus saada koko polku tiedostot
Jos minulla olisi tarve absoluuttinen polku tiedostot:
Muu käyttö loraus
Jos haluan kaikki tiedostot hakemistoon:
x = glob.glob("*")
Käyttäen os.polku.isfile välttää hakemistojen luetteloon*
Käyttämällä pathlib alkaen (Python 3.4)
Jos haluat käyttää luettelon ymmärtämistä
flist =
Saada kaikki ja vain tiedostot, os.,kävellä
Saat vain tiedostot, joiden vieressä ja kävelymatkan hakemistoon
import osx = next(os.walk('F://python'))print(x)################################### output:
Saat vain hakemistojen vieressä ja kävelymatkan hakemistoon
import osnext(os.walk('F://python')) # for the current dir use ('.')# output:
**kaikki subdir nimet kävellä
– käyttöjärjestelmä.scandir() python 3.5
Ex. 1: Kuinka monta tiedostoa on alihakemistoissa?
tässä esimerkissä etsitään kaikkien hakemiston ja sen alihakemistojen sisältämien tiedostojen määrää.
Ex.2:Miten kopioida kaikki tiedostot dir toiseen?,
script tehdä, jotta tietokoneen löytää kaikki tiedostot tyypin (oletus: pptx) ja kopioimalla ne uuteen kansioon.
Ex.3: Miten saada kaikki tiedostot txt-tiedosto
jos haluat luoda txt-tiedosto, jossa kaikki tiedostonimet:
Esimerkki: luoda txt-kaikki tiedostojen nimet kiintolevylle
Kaikki tiedot C:\\ yhdessä teksti-tiedosto
Tämä on lyhyempi versio edellisestä koodi. Muuta kansiota, jossa alkaa löytää tiedostoja, jos sinun täytyy aloittaa toisesta paikasta., Tämä koodi luo 50 mb tekstitiedosto tietokoneellani jotain vähemmän kuin 500.000 riviä tiedostoja koko polku.
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")