Tworzenie katalogów

W tej lekcji nauczysz się jak tworzyć katalogi, poznasz najczęstsze błędy oraz jak sobie z nimi radzić 😉

Jak utworzyć katalog?

Do tworzenia nowego katalogu służy funkcja mkdir() z modułu os. Oto najprostszy przykład użycia funkcji, skutkujący dodaniem katalogu:

os.mkdir("C:\Projects\MyProject\MyNewFolder")
TIP: Nie musisz znać składni do tworzenia katalogów na różnych systemach (Windows, Ubuntu). Moduł os jest sprytny i większość poleceń wykona się identycznie na różnych platformach. Dlatego 💕 Python.

Napiszmy to razem…

Przykład użycia

W tym celu w katalogu głównym projektu utwórzmy nowy skrypt o nazwie create_dir.py.

Dodajmy po kolei kod:

  • Importujemy moduł os do obsługi poleceń dla systemu operacyjnego.

    import os
    
  • Dodajemy polecenie, które sprawi, że katalog zostanie utworzony. Folder newTestFiles zostanie dodany w miejscu, w kórym znajduje się nasz skrypt create_dir.py, czyli w C:\Projects\pythonFiles\.

    os.mkdir("newTestFiles")
    

Cały kod:

import os

os.mkdir("newTestFiles")

Skoro jesteś napompowany teoretycznie – uruchom skrypt! Zauważysz dwie rzeczy:

  1. Na konsoli nie ma informacji, że jakikolwiek katalog został utworzony!
  2. Nasz katalog widnieje dumnie na samym szczycie projektu💪

Dodanie katalogu do istniejącego katalogu

Trochę skomplikujemy nasz skrypt, aby lepiej wykorzystać poznaną wiedzę.

TIP: Zalecamy uruchomienie skryptu dopiero w finalnej wersji z końca akapitu. Ponowne uruchomienie w przejściowym stanie może wywołać błąd (rozwiążemy go w kolejnych lekcjach). Jeśli wystąpi problem – usunięcie manualnie katalogu newTestFiles powinno pomóc.

Naszym celem będzie utworzenie katalogu newTestFiles w istniejącym katalogu: testFiles.

Zacznijmy od takiej modyfikacji w kodzie:

  1. Zaraz pod import os dodajemy nową linię. Wpisujemy w niej kod:

    dir_full_path = "newTestFiles"
    

    W ten sposób wydzielamy do osobnej zmiennej nazwę ścieżki do katalogu.

  2. Modyfikujemy ostatnią linię aby używać zmiennej dir_full_path:

    os.mkdir(dir_full_path)
    

Pełen kod:

import os

dir_full_path = "newTestFiles"
os.mkdir(dir_full_path)

Nasz kod jednak nie zawiera polecenia tworzenia nowego katalogu w już istniejącym katalogu. Zmieńmy to!

Modyfikujemy linię z dir_full_path na taką.

dir_full_path = os.path.join("testFiles", "newTestFiles")

Korzystamy z funkcji os.path.join() która sprawi, że utworzymy poprawną ścieżkę nie dbając o zależności systemowe. I teraz wygląda to poprawnie!

Pamiętaj, że jest to ścieżka względna, czyli taka która odnosi się do miejsca w który znajduje się plik z obecnym kodem (więcej o ścieżkach znajdziesz Ścieżki do pliku – względna i bezwzględna). Aby lepiej to zwizualizować dodajemy wypisywanie pomocniczych informacji na konsolę (linie z print):

import os

dir_full_path = os.path.join("testFiles", "newTestFiles")

print(f'New directory will be created in: "{os.getcwd()}"')
print(f'New directory path: "{dir_full_path}"')

os.mkdir(dir_full_path)

W pierwszym print wpisujemy obecną ścieżkę, w której się znajdujemy z pomocą funkcji getcwd().

W drugim print wpisujemy jaka będzie ścieżka relatywna czyli taka jaka zostanie dodana do obecnej ścieżki w której znajduje się nasz skrypt.

Odpalamy kod!

Powinieneś otrzymać podobny wynik w konsoli

New directory will be created in: "C:\Projects\pythonFiles"
New directory path: "testFiles\newTestFiles"

Process finished with exit code 0

Teraz dokładnie widzisz co i gdzie zostanie zrealizowane💪 Oczywiście sprawdź czy w katalogu testFiles pojawił się nowy katalog: newTestFiles.

TIP: Jeśli chcielibyśmy stworzyć katalog w miejscu niezależnym od umiejscowienia naszego skryptu, to musielibyśmy użyć ścieżki bezwzględnej. W takim przypadku w zmiennej dir_full_path musi się znaleźć pełna ścieżka:

D:\OtherProjects\myNewTestData

Nie jest zalecane tworzenie katalogów poza projektem. Może nas spotkać nieprzyjemne zaskoczenie gdy przez pomyłkę dokonamy zmian w istniejącym na systemie oprogramowaniu 😀

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *