Finn alle filene i en mappe

Hvordan vi kan finne en fil på datamaskinen med Python? Det er mange måte å gjøre det på, la oss starte med det første.

ved Hjelp av mac os.listdir()

Du trenger bare å importere os-modul, og du kan bruke os.listdir funksjon for å være i stand til å se alle filer i en katalog. I Python 3, hvis du ikke sette noe som argument i rund parentes, vil den gå tilbake du en liste over alle filer og mapper i gjeldende mappe., I Pyton 2 du må bruke os.listdir(«.») for å se filer i gjeldende mappe.

# First tryimport osf_list = os.listdir()

Hvis du ønsker en bestemt katalog, må du sette banen som et argument.

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

I dette eksemplet, kan du se på filene i mappen dokumenter på harddisken C:

os.listdir(): få filer i gjeldende katalog (Python 3)

Den enkleste måten å ha filen i gjeldende dir i Python 3 er dette., Det er veldig enkelt, bruke os-modulen og listdir () – funksjonen, og du vil ha filen i den dir (og eventuelle mapper som er i katalogen, men du vil ikke ha filen i en undermappe, for at du kan bruke gange, jeg vil ikke snakke om det senere).

import osarr = os.listdir()arr

Få full bane navn

Som du lagt merke til, har du ikke den fullstendige banen til filen i koden ovenfor. Hvis du trenger å ha den absolutte banen, kan du bruke en annen funksjon i os.banen modul kalt _getfullpathname, sette den filen du får fra os.listdir() som et argument., Det er andre måter å ha full vei, som vi skal se senere (jeg byttet ut, som foreslått av mexmex, _getfullpathname med abspath).

Få full bane navn på en type fil til alle undermapper med gange

jeg finner dette svært nyttig for å finne ting i mange kataloger og det hjalp meg til å finne en fil som jeg ikke husker 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 gjeldende katalog (Python-2)

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

for Å gå opp i katalogen treet

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

få filer: os.,listdir() i en bestemt katalog (Python 2 og 3)

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

Få filer av en bestemt underkatalog med os.listdir()

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

os.spasertur(‘.’) – gjeldende mappe

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

glob modul – alle filer

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

neste(os.spasertur(‘.’)) og os.bane.bli med(‘dir’,’fil’)

neste(os.gange («F:\’) – få full bane – listen forståelse

# output# 

os.walk – få full sti – alle filer i sub skuffer

x = x# output# 

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

arr_txt = print(arr_txt)# output: 

glob – får bare txt-filer

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

ved Hjelp av glob for å få den fullstendige banen til filene

Hvis jeg skulle ha behov for den absolutte banen til filene som:

Annen bruk av glob

Hvis jeg vil at alle filer som er i katalogen:

x = glob.glob("*")

ved Hjelp av mac os.bane.isfile å unngå kataloger i listen*

ved Hjelp av pathlib fra (Python 3.4)

Hvis du vil bruke listen forståelse

flist = 

Få alle og bare filer med os.,gange

Få bare filer med neste og gå i en mappe

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

Få bare kataloger med neste og gå i en mappe

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

**Få alle subdir navn med gange

os.scandir() fra python 3.5 på

Ex. 1: Hvor mange filer som er der i underkataloger?

I dette eksempelet, ser vi etter antall filer som er inkludert i alle mappe og dens undermapper.

Ex.2: Hvordan å kopiere alle filer fra en mappe til en annen?,

Et skript for å få orden i datamaskinen for å finne alle filer av en type (standard: pptx) og kopiere dem over i en ny mappe.

Ex.3: Hvordan å få alle filene i en txt-fil

I tilfelle du ønsker å opprette en txt-fil med alle fil-navn:

Eksempel: opprette en txt med alle filene navn i harddisken

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

Dette er en kortere versjon av den forrige koden. Endre mappe hvor du skal begynne å finne filer hvis du trenger å starte fra en annen posisjon., Denne koden for å generere en 50 mb på tekst-fil på datamaskinen min med noe mindre enn 500.000 linjer med filer med den fullstendige banen.

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

Leter du etter en filtype i alle Harddisk med os.gange

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *