The Moduł systemu operacyjnego w Pythonie udostępnia funkcje umożliwiające interakcję z systemem operacyjnym. System operacyjny należy do standardowych modułów narzędziowych Pythona. Moduł ten zapewnia przenośny sposób korzystania z funkcjonalności zależnych od systemu operacyjnego.
The *os* i *os.ścieżka* moduły zawierają wiele funkcji umożliwiających interakcję z systemem plików.
Funkcje modułu systemu operacyjnego Python
Tutaj omówimy kilka ważnych funkcji modułu Python os:
- Obsługa bieżącego katalogu roboczego
- Tworzenie katalogu
- Wyświetlanie listy plików i katalogów za pomocą Pythona
- Usuwanie katalogu lub plików za pomocą Pythona
Obsługa bieżącego katalogu roboczego
Rozważać Aktualny katalog roboczy (CWD) jako folder, w którym działa Python. Ilekroć pliki są wywoływane tylko według nazwy, Python zakłada, że zaczyna się w CWD, co oznacza, że odwołanie oparte wyłącznie na nazwie będzie skuteczne tylko wtedy, gdy plik znajduje się w CWD Pythona.
Notatka: Folder, w którym działa skrypt Pythona, nazywany jest katalogiem bieżącym. To nie jest ścieżka, w której znajduje się skrypt Pythona.
Pobieranie bieżącego katalogu roboczego
Aby uzyskać lokalizację bieżącego katalogu roboczego os.getcwd() Jest używane.
Przykład: Ten kod używa ' os'> moduł do pobrania i wydrukowania bieżącego katalogu roboczego (CWD) skryptu Python. Pobiera CWD za pomocą metody ' os.getcwd()'> a następnie drukuje go na konsoli.
import os cwd = os.getcwd() print('Current working directory:', cwd)> Wyjście:
Current working directory: /home/nikhil/Desktop/gfg>
Zmiana bieżącego katalogu roboczego
Aby zmienić bieżący katalog roboczy (CWD) os.chdir() stosowana jest metoda. Ta metoda zmienia CWD na określoną ścieżkę. Jako nową ścieżkę katalogu przyjmuje tylko jeden argument.
Notatka: Bieżącym katalogiem roboczym jest folder, w którym działa skrypt Pythona.
Przykład: Kod sprawdza i wyświetla bieżący katalog roboczy (CWD) dwukrotnie: przed i po zmianie katalogu o jeden poziom w górę za pomocą os.chdir('../')> . Zawiera prosty przykład pracy z bieżącym katalogiem roboczym w Pythonie.
import os def current_path(): print('Current working directory before') print(os.getcwd()) print() current_path() os.chdir('../') current_path()> Wyjście:
Current working directory before C:UsersNikhil AggarwalDesktopgfg Current working directory after C:UsersNikhil AggarwalDesktop>
Tworzenie katalogu
W module systemu operacyjnego dostępne są różne metody tworzenia katalogu. To są -
- os.mkdir()
- os.makedirs()
Korzystanie z os.mkdir()
Używając os.mkdir() Metoda w Pythonie służy do tworzenia katalogu o nazwie path z określonym trybem numerycznym. Ta metoda wywołuje FileExistsError, jeśli katalog, który ma zostać utworzony, już istnieje.
Przykład: Ten kod tworzy dwa katalogi: techcodeview.com w ciągu D:/Projekty Pycharm/ katalog i Geeki w ciągu D:/Projekty Pycharm informator.
- Pierwszy katalog jest tworzony przy użyciu pliku
os.mkdir()>metodę bez określenia trybu. - Drugi katalog jest tworzony przy użyciu tej samej metody, ale w określonym trybie (
0o666>) jest udostępniany, który przyznaje uprawnienia do odczytu i zapisu. - Następnie kod wypisuje komunikaty wskazujące, że katalogi zostały utworzone.
import os directory = 'techcodeview.com' parent_dir = 'D:/Pycharm projects/' path = os.path.join(parent_dir, directory) os.mkdir(path) print('Directory '% s' created' % directory) directory = 'Geeks' parent_dir = 'D:/Pycharm projects' mode = 0o666 path = os.path.join(parent_dir, directory) os.mkdir(path, mode) print('Directory '% s' created' % directory)> Wyjście:
Directory 'techcodeview.com' created Directory 'Geeks' created>
Korzystanie z os.makedirs()
os.makedirs() Metoda w Pythonie służy do rekurencyjnego tworzenia katalogu. Oznacza to, że podczas tworzenia katalogu liścia, jeśli brakuje jakiegoś katalogu średniopoziomowego, metoda os.makedirs() utworzy je wszystkie.
Przykład: Ten kod tworzy dwa katalogi, Nikhil I C , w różnych katalogach nadrzędnych. Używaos.makedirs>funkcję zapewniającą utworzenie katalogów nadrzędnych, jeśli nie istnieją.
Ustawia także uprawnienia dla pliku C informator. Kod wypisuje komunikaty potwierdzające utworzenie tych katalogów
Pyton import os directory = 'Nikhil' parent_dir = 'D:/Pycharm projects/GeeksForGeeks/Authors' path = os.path.join(parent_dir, directory) os.makedirs(path) print('Directory '% s' created' % directory) directory = 'c' parent_dir = 'D:/Pycharm projects/techcodeview.com/a/b' mode = 0o666 path = os.path.join(parent_dir, directory) os.makedirs(path, mode) print('Directory '% s' created' % directory)> Wyjście:
Directory 'Nikhil' created Directory 'c' created>
Wyświetlanie listy plików i katalogów za pomocą Pythona
Jest os.listdir() Metoda w Pythonie służy do uzyskania listy wszystkich plików i katalogów w określonym katalogu. Jeśli nie określimy żadnego katalogu, zwrócona zostanie lista plików i katalogów w bieżącym katalogu roboczym.
Przykład: Ten kod wyświetla listę wszystkich plików i katalogów w katalogu głównym (/) . Używaos.listdir>funkcję, aby uzyskać listę plików i katalogów w określonej ścieżce, a następnie wydrukuje wyniki.
import os path = '/' dir_list = os.listdir(path) print('Files and directories in '', path, '' :') print(dir_list)> Wyjście:
Files and directories in ' / ' : ['sys', 'run', 'tmp', 'boot', 'mnt', 'dev', 'proc', 'var', 'bin', 'lib64', 'usr', 'lib', 'srv', 'home', 'etc', 'opt', 'sbin', 'media']>
Usuwanie katalogu lub plików za pomocą Pythona
Moduł OS zapewnia różne metody usuwania katalogów i plików w Pythonie. To są -
- Korzystanie z os.remove()
- Korzystanie z os.rmdir()
Korzystanie z metody os.remove().
os.usuń() metoda w Pythonie służy do usuwania lub usuwania ścieżki pliku. Ta metoda nie może usunąć ani usunąć katalogu. Jeśli podana ścieżka jest katalogiem, metoda wywoła OSError.
Przykład: Załóżmy, że plik zawarty w folderze to:

Ten kod usuwa plik o nazwie file1.txt z określonej lokalizacji D:/Pycharm projekty/techcodeview.com/Authors/Nikhil/. Używaos.remove>funkcja, aby usunąć plik w określonej ścieżce.
import os file = 'file1.txt' location = 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil/' path = os.path.join(location, file) os.remove(path)>
Wyjście:

Korzystanie z os.rmdir()
os.rmdir() metoda w Pythonie służy do usuwania lub usuwania pustego katalogu. OSError zostanie zgłoszony, jeśli określona ścieżka nie jest pustym katalogiem.
Przykład: Załóżmy, że katalogi są

Ten kod próbuje usunąć katalog o nazwie Geeki zlokalizowany w D:/Projekty Pycharm/ .
Używaos.rmdir>funkcja usuwania katalogu. Jeśli katalog jest pusty, zostanie usunięty. Jeśli zawiera pliki lub podkatalogi, może wystąpić błąd.
import os directory = 'Geeks' parent = 'D:/Pycharm projects/' path = os.path.join(parent, directory) os.rmdir(path)>
Wyjście:

Często używane funkcje
Korzystanie z funkcji os.name
Ta funkcja podaje nazwę zaimportowanego modułu zależnego od systemu operacyjnego . Obecnie zarejestrowane są następujące nazwy: „posix”, „nt”, „os2”, „ce”, „java” i „riscos”.
Pyton import os print(os.name)>
Wyjście:
posix>
Notatka: Po uruchomieniu kodu w tym miejscu może dawać różne wyniki w przypadku różnych interpreterów, np. „posix”.
Korzystanie z funkcji os.error
Wszystkie funkcje w tym module się podnoszą OSEBłąd w przypadku nieprawidłowych lub niedostępnych nazw plików i ścieżek lub innych argumentów, które mają poprawny typ, ale nie są akceptowane przez system operacyjny. os.error jest aliasem wbudowanego wyjątku OSError.
Ten kod odczytuje zawartość pliku o nazwie „GFG.txt” . Używa A ' spróbuj… z wyjątkiem ' blok do obsługi potencjalnych błędów, w szczególności „ Błąd IO ' może się to zdarzyć, jeśli wystąpi problem z odczytaniem pliku.
Jeżeli wystąpi błąd, wyświetli się komunikat: Problem z odczytaniem: GFG.txt.
Pyton import os try: filename = 'GFG.txt' f = open(filename, 'rU') text = f.read() f.close() except IOError: print('Problem reading: ' + filename)> Wyjście:
Problem reading: GFG.txt>
Korzystanie z funkcji os.popen().
Ta metoda otwiera potok do lub z polecenia. Wartość zwracaną można odczytać lub zapisać w zależności od tego, czy jest to tryb „r” lub „w” .
Składnia:
os.popen(command[, mode[, bufsize]])>
Parametry mode i bufsize nie są parametrami niezbędnymi, jeśli nie zostaną podane, za tryb przyjmuje się domyślne „r”.
Ten kod otwiera plik o nazwie „GFG.txt” w trybie zapisu – pisze Cześć do niego, a następnie odczytuje i drukuje jego zawartość. Sposób użycia os.popen> nie jest zalecane i do tych zadań używane są standardowe operacje na plikach.
import os fd = 'GFG.txt' file = open(fd, 'w') file.write('Hello') file.close() file = open(fd, 'r') text = file.read() print(text) file = os.popen(fd, 'w') file.write('Hello')> Wyjście:
Hello>
Notatka: Dane wyjściowe funkcji popen() nie zostaną pokazane, w pliku zostaną wprowadzone bezpośrednie zmiany.
Korzystanie z funkcji os.close().
Zamknij deskryptor pliku fd. Plik otwarty za pomocą metody open() można zamknąć wyłącznie za pomocą metody close(). Ale plik otwarty za pomocą os.popen() można zamknąć za pomocą funkcji close() lub os.zamknij() . Jeśli spróbujemy zamknąć plik otwarty za pomocą open(), używając os.close(), Python wyrzuci błąd TypeError.
Pyton import os fd = 'GFG.txt' file = open(fd, 'r') text = file.read() print(text) os.close(file)>
Wyjście:
Traceback (most recent call last): File 'C:UsersGFGDesktopGeeksForGeeksOSFile.py', line 6, in os.close(file) TypeError: an integer is required (got type _io.TextIOWrapper)>
Notatka: Ten sam błąd może nie zostać zgłoszony ze względu na nieistniejący plik lub uprawnienia uprawnień.
Korzystanie z funkcji os.rename().
Nazwę pliku old.txt można zmienić na nowy.txt za pomocą funkcji os.rename() . Nazwa pliku zmienia się tylko wtedy, gdy plik istnieje, a użytkownik ma wystarczające uprawnienia do zmiany pliku.
Pyton import os fd = 'GFG.txt' os.rename(fd,'New.txt') os.rename(fd,'New.txt')>
Wyjście:
Traceback (most recent call last): File 'C:UsersGFGDesktopModuleOSGeeksForGeeksOSFile.py', line 3, in os.rename(fd,'New.txt') FileNotFoundError: [WinError 2] The system cannot find the file specified: 'GFG.txt' ->'Nowy.txt'>
Istnieje plik o nazwie GFG.txt, zatem przy pierwszym użyciu funkcji os.rename() nazwa pliku zostanie zmieniona.
Po drugim wywołaniu funkcji os.rename() plik New.txt istnieje, a nie GFG.txt, dlatego Python zgłasza błąd FileNotFoundError.
Korzystanie z funkcji os.remove().
Za pomocą modułu Os możemy usunąć plik w naszym systemie za pomocą metody os.usuń() metoda. Aby usunąć plik musimy przekazać nazwę pliku jako parametr.
Pyton import os #importing os module. os.remove('file_name.txt') #removing the file.> Moduł OS zapewnia nam warstwę abstrakcji pomiędzy nami a systemem operacyjnym.
Kiedy pracujemy z os moduł zawsze określa ścieżkę bezwzględną w zależności od systemu operacyjnego, na którym kod może działać na dowolnym systemie operacyjnym, ale musimy dokładnie zmienić ścieżkę. Jeśli spróbujesz usunąć plik, który nie istnieje, otrzymasz Błąd FileNotFound .
Korzystanie z funkcji os.path.exists().
Ta metoda sprawdza, czy plik istnieje, czy nie, przekazując nazwę pliku jako parametr. Moduł OS posiada podmoduł o nazwie PATH, za pomocą którego możemy wykonać znacznie więcej funkcji.
Pyton import os #importing os module result = os.path.exists('file_name') #giving the name of the file as a parameter. print(result)> Wyjście:
False>
Podobnie jak w powyższym kodzie, plik nie istnieje, wyświetli wynik False. Jeśli plik istnieje, wyświetli nam wynik True.
Korzystanie z funkcji os.path.getsize().
W os.path.getsize( ), python poda nam rozmiar pliku w bajtach. Aby skorzystać z tej metody musimy przekazać nazwę pliku jako parametr.
Pyton import os #importing os module size = os.path.getsize('filename') print('Size of the file is', size,' bytes.')> Wyjście:
sql wybierz z wielu tabel
Size of the file is 192 bytes.>