Najít všechny soubory v adresáři

Jak můžeme najít soubor na počítači s Python? Existuje spousta způsobů, jak to udělat, začněme s prvním.

pomocí os.listdir ()

stačí importovat modul os a můžete použít operační systém.listdir funkce, aby bylo možné vidět celý soubor v adresáři. V Pythonu 3, pokud do kulaté závorky nedáte nic jako argument, vrátí vám seznam všech souborů a složky aktuálního adresáře., V Pyton 2 musíte použít os.listdir(„.“) Chcete-li zobrazit soubory v aktuálním adresáři.

# First tryimport osf_list = os.listdir()

Pokud chcete konkrétní adresář, musíte dát cestu jako argument.

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

v tomto příkladu se můžete podívat na soubory ve složce Dokumenty pevného disku C:

os.listdir (): získejte soubory v aktuálním dir (Python 3)

nejjednodušší způsob, jak mít soubor v aktuálním dir v Pythonu 3, je toto., Je to opravdu jednoduché, použijte os modul a listdir() funkce a budete mít soubor v tomto adresáři (a případné složky, které jsou v dir, ale nebudete mít soubor v podadresáři, pro které můžete použít procházka – budu o tom mluvit později).

import osarr = os.listdir()arr

získání názvu celé cesty

jak jste si všimli, nemáte úplnou cestu k souboru ve výše uvedeném kódu. Pokud potřebujete mít absolutní cestu, můžete použít jinou funkci operačního systému.path modul s názvem _getfullpathname, uvedení souboru, který dostanete z os.listdir () jako argument., Existují i jiné způsoby, jak mít plnou cestu, jak to zkontrolujeme později (nahradil jsem, jak navrhl mexmex, _getfullpathname s abspath).

Získat plnou cestu, název a typ souboru, do všech podadresářů s walk

já jsem najít to velmi užitečné najít věci, v mnoha adresářích a to mi pomohlo najít soubor, o kterém jsem si nepamatoval název:

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(): ten souborů v aktuálním adresáři dir (Python 2)

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

jít nahoru v adresářové struktuře

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

získat soubory: os.,listdir() v konkrétním adresáři (Python 2 a 3)

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

Získat soubory určitého podadresáře s os.listdir ()

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

os.chůze(‘.‘) – aktuální adresář

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

modul glob – všechny soubory

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

další(os.chůze(‘.‘)) a os.cesta.připojte se (‚dir‘,’file‘)

další (os.procházka (‚F:\‘) – Získejte plnou cestu – seznam porozumění

# output# 

os.walk-get full path-všechny soubory v subdirs

x = x# output# 

os.,listdir() – získat pouze soubory txt

arr_txt = print(arr_txt)# output: 

glob – dostat pouze txt soubory

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

Pomocí glob získat úplnou cestu k souborům,

Pokud bych měl potřebovat absolutní cestu k souborům:

Další použití glob

Když chci všechny soubory v adresáři:

x = glob.glob("*")

Použití os.cesta.isfile, aby se zabránilo adresářů v seznamu*

Pomocí pathlib z (Python 3.4)

Pokud chcete použít seznam s porozuměním

flist = 

Získat všechny a pouze soubory s os.,chůze

Získat pouze soubory s další a chodit v adresáři

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

Získat pouze adresáře s další a chodit v adresáři

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

**Získejte všechny podadresar jména s walk

os.scandir () z Pythonu 3.5 na

Ex. 1: kolik souborů je v podadresářích?

v tomto příkladu hledáme počet souborů, které jsou obsaženy ve všech adresářích a podadresářích.

Ex.2: Jak zkopírovat všechny soubory z dir do jiného?,

skript pro objednání v počítači nalezení všech souborů typu (výchozí: pptx) a jejich kopírování do nové složky.

Ex.3: Jak se dostat všechny soubory v txt souboru

V případě, že chcete vytvořit txt soubor s názvy souborů:

Příklad: vytvoření txt se všemi názvy souborů na pevném disku

soubor C:\\ v jednom textovém souboru

Toto je kratší verze předchozí kód. Změňte složku, kde chcete začít hledat soubory, pokud potřebujete začít z jiné pozice., Tento kód vygeneruje 50 mb na textovém souboru v počítači s něčím menším než 500.000 řádků se soubory s úplnou cestou.

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

hledáte typ souboru na všech pevných discích s os.procházka

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *