Find alle filer i en mappe

Hvordan kan vi finde en fil på en computer med Python? Der er mange måder at gøre det på, lad os starte med den første.

brug af os.listdir ()

Du skal bare importere os-modulet, og du kan bruge os.listdir funktion for at kunne se alle filen i en mappe. I Python 3, Hvis du ikke sætter noget som argument i den runde parentes, vil det give dig en liste over alle filer og mapper i den aktuelle mappe., I Pyton 2 skal du bruge os.listdir (“.”) for at se filerne i den aktuelle mappe.

# First tryimport osf_list = os.listdir()

Hvis du vil have en bestemt mappe, skal du sætte stien som et argument.

os.listdir("C:\\documents")

I dette eksempel, du kan se filerne i mappen dokumenter på harddisken C:

os.listdir (): Hent filer i nuværende dir (Python 3)

den enkleste måde at have filen i den aktuelle dir i Python 3 er dette., Det er virkelig enkelt, brug os-modulet og listdir () – funktionen, og du har filen i det dir (og eventuelle mapper, der er i dir, men du har ikke filen i undermappen, for det kan du bruge walkalk-jeg vil tale om det senere).

import osarr = os.listdir()arr

få det fulde stinavn

som du har bemærket, har du ikke den fulde sti til filen i koden ovenfor. Hvis du har brug for den absolutte sti, kan du bruge en anden funktion af operativsystemet.sti modul kaldet _getfullpathname, sætte den fil, du får fra os.listdir () som et argument., Der er andre måder at have den fulde sti på, som vi vil kontrollere senere (jeg erstattede, som foreslået af Me .me., _getfullpathname med abspath).

Få den fulde sti er navnet på en type af filer i alle underbiblioteker med gang

jeg finder det meget nyttigt at finde ting, i mange biblioteker, og det hjalp mig til at finde en fil, som jeg ikke kan huske navnet:

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å filer i det aktuelle katalog (Python 2)

import osarr = os.listdir('.')arr# output: 

for At gå op i mappetræet

# method 1x = os.listdir('..')# method 2x = os.listdir('/')

hent filer: os.,listdir() i en bestemt mappe (Python 2 og 3)

import osarr = os.listdir('F:\\python')arr# output: 

Få filer af en bestemt undermappe med os.listdir()

import osx = os.listdir("./content")

os.gang(‘.’) – aktuelle mappe

import osarr = next(os.walk('.'))arr# output: 

glob modul – alle filer

import globprint(glob.glob("*"))# output: 

næste(os.gang(‘.’)) og os.sti.Deltag (‘dir’,’fil’)

næste (os.gang (“F:\’) – få den fulde sti – liste forståelse

# output# 

os.gang – få fuld sti – alle filer i sub-dirs

x = x# output# 

os.,listdir() – får kun txt-filer

arr_txt = print(arr_txt)# output: 

glob – kun få txt-filer

import globx = glob.glob("*.txt")x# output: 

Brug glob for at få den fulde sti til filer

Hvis jeg skulle have behov for den absolutte sti til filer:

Anden brug af glob

Hvis jeg ønsker, at alle filer i den mappe:

x = glob.glob("*")

ved Hjælp os.sti.isfile at undgå mapper, i listen*

Brug pathlib fra (Python 3.4)

Hvis du ønsker at bruge listen forståelse

flist = 

Få alle og kun filer med os.,gang

Hent kun filer med næste gang og i en mappe

import osx = next(os.walk('F://python'))print(x)################################### output: 

Få kun mapper med næste gang og i en mappe

import osnext(os.walk('F://python')) # for the current dir use ('.')# output: 

**Få alle subdir navne med gang

os.scandir () fra python 3.5 på

e.. 1: Hvor mange filer er der i undermapperne?

i dette eksempel ser vi efter antallet af filer, der er inkluderet i alle mappen og dens undermapper.

e..2: Hvordan kopieres alle filer fra en dir til en anden?,

et script til at gøre orden i din computer finde alle filer af en type (standard: PPT.) og kopiere dem i en ny mappe.

e..3: Sådan får du alle filer i en txt-fil

I tilfælde af at du ønsker at oprette en txt-fil med alle filnavne:

Eksempel: du oprette en txt-med alle de filer, navne på din harddisk

Hele filen i C:\\ i en tekst-fil

Dette er en kortere version af den forrige kode. Skift den mappe, hvor du skal begynde at finde filerne, hvis du skal starte fra en anden position., Denne kode genererer en 50 mb på tekstfil på min computer med noget mindre end 500.000 linjer med filer med den komplette sti.

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")

Leder du efter en type fil i Al harddisk med os.gå

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *