Najděte soubory podle názvu na pevném disku pomocí Pythonu

Obsah

V tomto tutoriálu se podíváme jak implementovat krátký program Python, který se postará o vyhledávání souborů, které obsahují určité jméno, v adresáři, který mu předáme (pokud mu nepředáme adresář, bude hledat z aktuálního adresáře). Uvidíme, že je to velmi jednoduchý kód na tvorbu a pochopení.

PoznámkaPříklad, který uvedu v tomto tutoriálu, spustím v Pythonu 3.X.

Nejprve nechám kompletní kód a níže bude vysvětlen po částech:

 import sys, os search = "solvetic" adresář = os.getcwd () total = 0 if (len (sys.argv)> 1): if (not os.path.isdir (sys.argv [1])): print (sys.argv [1], "není rozpoznáno jako adresář") sys.exit (1) adresář = sys.argv [1] pro root, dir, soubory v os.walk (adresář): pro soubor v souborech: if ( hledat v file.lower ()): tisk (root + "\" + soubor) celkem + = 1 tisk ("Celkem je", celkem, "souborů s", hledat) 
Nyní začneme s vysvětlováním kódu, pokud už o Pythonu něco víte, určitě jste mu již z větší části porozuměli.

K provedení tohoto programu použijeme os modul komunikovat s operačním systémem a sys ovládat vstup argumentu a možný výstup bez náhlosti. Jsou to moduly, které již v Pythonu máme, takže nemusíme instalovat nic jiného.

 import sys, os 
Dále definujeme proměnnou nazvanou hledat se slovem, které budeme hledat (mohli bychom ji přijmout jako parametr, ale v tomto případě to bude například sametové), další nazvaný adresář, který bude obsahovat cestu odkud začneme (standardně aktuální adresář, odkud program spouštíme). A poslední proměnná, kterou vidíme celkem, je sledovat soubory, které nacházíme.
 search = "solvetic" adresář = os.getcwd () celkem = 0 
Nyní zkontrolujeme, zda jsme obdrželi nějaké parametry, a pokud ano, zkontrolujeme, zda nám poskytli adresář, pokud je to pravda, uložíme adresář do proměnné „adresář“, pokud ne, tato proměnná zůstane stejná, tedy s aktuálním adresářem.
 if (len (sys.argv)> 1): if (not os.path.isdir (sys.argv [1])): print (sys.argv [1], "not identified as directory") sys.exit ( 1) adresář = sys.argv [1] 
Dalším krokem je smyčka, funkce os.walk (adresář) bude rekurzivně číst názvy souborů, to znamená, že bude procházet soubory a adresáře z adresáře, který mu předáme. Jediná věc, která nás v tomto příkladu zajímá, je ukázat soubory, které obsahují slovo solveta, takže projdeme soubory a zkontrolujeme, zda mají hledané slovo, a také najdeme soubory, které obsahují slovo s velkým písmenem používáme dolní funkci, že vše, co dělá, je nechat celý řetězec malými písmeny. Jelikož nás zajímá vidět úplnou cestu k souboru, zřetězíme kořenovou proměnnou se souborem, protože root vrací adresář, který jsme přečetli.
 pro root, dir, soubory v os.walk (adresář): pro soubor v souborech: if (hledat v file.lower ()): print (root + "\" + soubor) celkem + = 1
Těsně před ukončením programu namaluje na obrazovku řádek s počtem nalezených souborů s názvem solvetic.
 tisk („Celkem existuje“, celkem, „soubory s“, hledání) 
Nyní vložím několik snímků obrazovky spuštění programu, pak spuštění bez parametru, to znamená, že provede vyhledávání z aktuálního adresáře:

Chcete -li hledat z disku C v systému Windows, postupujte takto:

A nakonec zachycení, když je jako parametr předáno něco, co není adresář:

A tutoriál skončil, pokud máte zájem modul dále zkoumat, zde je odkaz na oficiální dokumentaci, je v angličtině.

Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod
wave wave wave wave wave