Базов Python скрипт

Сега ще разгледаме, как можем да си направим базов Python скрипт, с който ще се обхожда зададена директория и ще се показва, пълното съдържание.

Това скриптче (scandir.py), е съвсем базово и изчистено, ще използваме функцията, scandir, с входен параметър директория, която ще се листва. Ще използваме пакети os и glob.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
import glob

def scandir(path):
 for current_item in glob.glob( os.path.join(path, '*.*') ):
 if os.path.isdir(current_item):
 scandir(current_item)
 print "File name: " + current_item

def main():
 scandir('/tmp/');
 return 0

if __name__ == '__main__':
 main()
 
  

И веднага обяснението:

import os
import glob
или import os, glob, въпрос на предпочитание.
Os – предлага възможност скрипта да използва възможностите на операционната система, в този скрипт, за достъп до файловата система.
Glob – Globbing, листва файлове, по зададена маска, в случая : *.* – означава всички файлове, с всякакви разширения, така написано, не хваща файлове без разширение, а написано : * съответно хваща всичко.

Дефинираната функция, scandir, приема параметър, path, който е валиден път от файловата система. Използваме цикъл foreach, и променлива current_item, която може да бъде файл или директория, приеманата стойност е резултатен итератор, от колекция, която връща глоб-а. И така за всяка итерация, ако текущият итератор е директория, се прави рекурсивно извикване на scandir, фунцкията с нов параметър. Обхождането на папката е в дълбочина, която предразполага рекурсията. А ако съответният итератор е от тип файл, направо се принтва на екрана и продължава изпълнението на цикъла.

Това, примерче е максимално опростено и четливо. Както казва Анщайн – “Нещата трябва да са възможно най-прости, но не и по-прости.”.

С малки модификации и callback функции, както и малко изобретателност и творчество този пример, би бил, много полезен за много tasks, свързани с директории и файлове.

Така, че използвайте скрипта разумно и практично, очаквам коментари кой с какви цели използва подбни скриптове.

Няма коментари

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

Нови технологии
Уеб Дев Трикове

ООП: Каква е разликата между обект и инстанция? Това е често срещан и задаван въпрос по форуми, изпити и пр. Разликата между двете е: Когато се създаде обект от класа, при съществуването вече на обекта в паметта се нарича инстанция. При вече създаден обект от даден клас, който съществува в …

Нови технологии
Нова продуктова линия Acer Extensa

Acer Extensa е продуктова линия лаптопи със сравнително дълга история. Този модел датира от преди 2010 г., но през 2017 година беше възроден за нов живот. И ако на вас този модел не ви говори нищо ще трябва да кажа с две думи основните характеристики на ноутбуците от тази линия. …

Нови технологии
Вече съм собственик на Acer Iconia W510 – ревю

Нали знаете поговорката „По лаптопа посрещат, по таблета изпращат“. Шегата настрана, но в днешно време за много хора е задължително да притежанат и лаптоп и таблет, а като добавим и смартфон нещата стават тегави. Разбира се не е нужно да ги носите всичките заедно. Точно, когато нямата място да разнасяте …