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")
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:
- Na konsoli nie ma informacji, że jakikolwiek katalog został utworzony!
- Nasz katalog widnieje dumnie na samym szczycie projektu💪
Dodanie katalogu do istniejącego katalogu
Trochę skomplikujemy nasz skrypt, aby lepiej wykorzystać poznaną wiedzę.
Naszym celem będzie utworzenie katalogu newTestFiles w istniejącym katalogu: testFiles.
Zacznijmy od takiej modyfikacji w kodzie:
-
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.
-
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.
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 😀