găsiți toate fișierele într-un director

cum putem găsi un fișier pe computer cu Python? Există o mulțime de moduri de a face acest lucru, să începem cu primul.

folosind sistemul de operare.listdir ()

trebuie doar să importați modulul os și puteți utiliza sistemul de operare.funcția listdir pentru a putea vedea tot fișierul într-un director. În Python 3, dacă nu puneți nimic ca argument în paranteza rotundă, vă va returna o listă cu toate fișierele și folderul directorului curent., În Pyton 2 trebuie să utilizați sistemul de operare.listdir(„.”) pentru a vedea fișierele din directorul curent.

# First tryimport osf_list = os.listdir()

Dacă doriți un anumit director, trebuie să puneți calea ca argument.

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

În acest exemplu, puteți privi fișierele din folderul Documente de pe hard disk C:

os.listdir (): obțineți fișiere în Dir curent (Python 3)

cel mai simplu mod de a avea fișierul în Dir curent în Python 3 este aceasta., Este foarte simplu, utilizați modulul os și funcția listdir () și veți avea fișierul în acel dir (și eventualele foldere care sunt în dir, dar nu veți avea fișierul în subdirector, pentru că puteți utiliza walk – voi vorbi despre asta mai târziu).

import osarr = os.listdir()arr

obținerea numelui complet al căii

după cum ați observat, nu aveți calea completă a fișierului în codul de mai sus. Dacă trebuie să aveți calea absolută, puteți utiliza o altă funcție a sistemului de operare.modul de cale numit _getfullpathname, punând fișierul pe care îl obțineți de la sistemul de operare.listdir () ca argument., Există și alte modalități de a avea calea completă, așa cum vom verifica mai târziu (am înlocuit, așa cum a sugerat mexmex, _getfullpathname cu abspath).

obțineți numele complet al căii unui tip de fișier în toate subdirectoarele cu walk

mi se pare foarte util să găsesc lucruri în multe directoare și m-a ajutat să găsesc un fișier despre care nu mi-am amintit numele:

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(): obține fișiere în curent dir (Python 2)

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

Pentru a merge în sus în arborele de directoare

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

obține fișiere de sistem: sistem de operare.,listdir () într-un anumit director (Python 2 și 3)

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

Obțineți fișiere ale unui anumit subdirector cu sistem de operare.listdir ()

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

os.mers pe jos („.’) – directorul curent

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

glob modul – toate fișierele

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

next(os.mers pe jos („.’)) și os.cale.Alăturați-vă („dir”, „fișier”)

următorul (os.walk (‘F:\’) – obțineți înțelegerea completă a listei de căi

# output# 

os.walk-obține calea completă – toate fișierele din sub dirs

x = x# output# 

os.,listdir() – ia numai fișiere txt

arr_txt = print(arr_txt)# output: 

glob – obține doar fișiere txt

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

Utilizarea glob pentru a obține calea completă de fișiere

Dacă ar trebui să nevoie de calea absolută de fișiere:

Alte utilizarea de glob

Dacă vreau toate fișierele în directorul:

x = glob.glob("*")

Folosind sistemul de operare.cale.isfile pentru a evita directoare în lista*

Utilizarea pathlib de (Python 3.4)

Dacă doriți să utilizați lista de înțelegere

flist = 

pentru a Primi toate și numai fișiere cu sistemul de operare.,de mers pe jos

Obține numai fișierele cu următorul și de mers pe jos într-un director

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

Obține doar directoarele cu următorul și de mers pe jos într-un director

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

**Obține toate subdir cu numele de mers pe jos

sistem de operare.scandir () din python 3.5 pe

Ex. 1: Câte fișiere există în subdirectoare?

în acest exemplu, căutăm numărul de fișiere care sunt incluse în toate directorul și subdirectoarele sale.

Ex.2: Cum să copiați toate fișierele de la un dir la altul?,

un script pentru a face ordine în computer găsirea tuturor fișierelor de un tip (implicit: pptx) și copierea lor într-un folder nou.

Ex.3: Cum să obțineți toate fișierele dintr-un fișier txt

În cazul în care doriți să creați un fișier txt cu toate numele fișierelor:

exemplu: creați un txt cu toate numele fișierelor de pe hard disk

tot fișierul C:\\ într-un fișier text

aceasta este o versiune mai scurtă a codului anterior. Schimbați folderul de unde să începeți să găsiți fișierele dacă trebuie să porniți dintr-o altă poziție., Acest cod generează un fișier text de 50 mb pe computerul meu cu ceva mai puțin de 500.000 de linii cu fișiere cu calea completă.

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

în căutarea unui tip de fișier în toate hard disk cu sistem de operare.mers pe jos

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *