В този урок ще видим как да внедрите кратка програма на Python, която ще се погрижи за търсене на файлове, които съдържат определено име, в директорията, която му предаваме (ако не му предадем директория, тя ще търси от текущата директория). Ще видим, че това е много прост код за създаване и разбиране.
ЗабележкаПримерът, който ще дам в този урок, ще пусна в Python 3.X.
Първо оставям пълния код и по -долу ще бъде обяснено част по част:
импортиране на sys, os търсене = "разрешителна" директория = os.getcwd () общо = 0 if (len (sys.argv)> 1): if (не os.path.isdir (sys.argv [1])): печат (sys.argv [1], "не се разпознава като директория") sys.exit (1) директория = sys.argv [1] за root, dir, файлове в os.walk (директория): за файл във файлове: if ( търсене в file.lower ()): печат (root + "\" + файл) общо + = 1 печат ("Общо има", общо, "файлове с", търсене)Сега ще започнем обяснението на кода, ако вече знаете нещо за Python, със сигурност вече сте го разбрали в по -голямата си част.
За да изпълним тази програма, ще използваме os модул за взаимодействие с операционната система и sys да контролира въвеждането на аргумента и евентуалното излизане без рязкост. Те са модули, които вече имаме в Python, така че не е нужно да инсталираме нищо друго.
import sys, osСлед това ще дефинираме променлива, наречена търсене, с думата, която ще търсим (бихме могли да я получим като параметър, но в този случай, например, тя ще бъде решаваща), друга извикана директория, която ще съдържа пътя откъдето ще започнем (по подразбиране текущата директория, от която стартираме програмата). И последната променлива, която виждаме общо, е да следим файловете, които намираме.
търсене = "решаваща" директория = os.getcwd () общо = 0Сега ще проверим дали сме получили някакви параметри и ако е така, проверяваме дали са ни дали директория, ако е вярно, запазваме директорията в променливата "директория", ако не, променливата остава същата, тоест с текущата директория.
if (len (sys.argv)> 1): if (не os.path.isdir (sys.argv [1])): print (sys.argv [1], "не се разпознава като директория") sys.exit ( 1) директория = sys.argv [1]Следващата стъпка е цикъл, функцията os.walk (директория) ще прочете имената на файловете рекурсивно, тоест ще премине през файловете и директориите от директорията, която им предаваме. Тогава единственото нещо, което ни интересува в този пример, е да покажем файловете, които съдържат думата Solvetic, така че ще преминем през файловете и ще проверим дали имат търсената дума, за да намерим и файловете, които съдържат думата с някаква главна буква използваме долната функция, че всичко, което прави, е да остави целия низ в малки букви. Тъй като сме заинтересовани да видим пълния път на файла, ние свързваме основната променлива с файла, тъй като root връща директорията, която сме прочели.
за root, dir, файлове в os.walk (директория): за файл във файлове: if (търсене във file.lower ()): печат (root + "\" + файл) общо + = 1Точно преди да приключи програмата, тя ще изрисува на екрана ред с броя на намерените файлове с името на Solutiontic.
печат ("Общо има", общо, "файлове с", търсене)Сега ще сложа няколко екранни снимки на изпълнението на програмата, след това изпълнението без параметър, тоест ще направи търсенето от текущата директория:
Следното за търсене от диск C в Windows:
И накрая улавяне, когато нещо, което не е директория, се предава като параметър:
И урокът приключи, ако се интересувате от по -нататъшно проучване на модула, ето линк към официалната документация, той е на английски.
Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка