logo

OS-modul i Python med exempel

De OS-modul i Python ger funktioner för att interagera med operativsystemet. OS kommer under Pythons standardverktygsmoduler. Denna modul ger ett bärbart sätt att använda operativsystemberoende funktionalitet.

De *os* och *os.path* moduler innehåller många funktioner för att interagera med filsystemet.

Python-OS-Module funktioner

Här kommer vi att diskutera några viktiga funktioner i Python OS-modulen:



  • Hantera den aktuella arbetskatalogen
  • Skapa en katalog
  • Lista ut filer och kataloger med Python
  • Ta bort katalog eller filer med Python

Hantera den aktuella arbetskatalogen

Överväga Current Working Directory (CWD) som en mapp där Python fungerar. Närhelst filerna endast anropas med deras namn, antar Python att den startar i CWD, vilket betyder att endast namnreferens kommer att lyckas endast om filen finns i Pythons CWD.

Notera: Mappen där Python-skriptet körs är känd som Current Directory. Det här är inte sökvägen där Python-skriptet finns.

Hämta den aktuella arbetskatalogen

För att få platsen för den aktuella arbetskatalogen os.getcwd() är använd.

Exempel: Denna kod använder ' os'> modul för att hämta och skriva ut den aktuella arbetskatalogen (CWD) för Python-skriptet. Den hämtar CWD med hjälp av ' os.getcwd()'> och skriver sedan ut den till konsolen.

Pytonorm
import os cwd = os.getcwd() print('Current working directory:', cwd)>

Produktion:

Current working directory: /home/nikhil/Desktop/gfg>

Ändra den aktuella arbetskatalogen

För att ändra den aktuella arbetskatalogen (CWD) os.chdir() metod används. Denna metod ändrar CWD till en specificerad sökväg. Det tar bara ett enda argument som en ny katalogsökväg.

Notera: Den aktuella arbetskatalogen är mappen där Python-skriptet fungerar.

Exempel: Koden kontrollerar och visar den aktuella arbetskatalogen (CWD) två gånger: före och efter ändring av katalogen upp en nivå med os.chdir('../')> . Den ger ett enkelt exempel på hur man arbetar med den aktuella arbetskatalogen i Python.

Pytonorm
import os def current_path(): print('Current working directory before') print(os.getcwd()) print() current_path() os.chdir('../') current_path()>

Produktion:

Current working directory before C:UsersNikhil AggarwalDesktopgfg Current working directory after C:UsersNikhil AggarwalDesktop>

Skapa en katalog

Det finns olika metoder tillgängliga i OS-modulen för att skapa en katalog. Dessa är -

  • os.mkdir()
  • os.makedirs()

Använder os.mkdir()

Genom att använda os.mkdir() metod i Python används för att skapa en katalog med namnet sökväg med det angivna numeriska läget. Denna metod väcker FileExistsError om katalogen som ska skapas redan finns.

Exempel: Denna kod skapar två kataloger: techcodeview.com inom D:/Pycharm-projekt/ katalog och Nördar inom D:/Pycharm-projekt katalog.

  • Den första katalogen skapas med hjälp avos.mkdir()>utan att ange läget.
  • Den andra katalogen skapas med samma metod, men ett specifikt läge ( 0o666> ) tillhandahålls, vilket ger läs- och skrivbehörigheter.
  • Koden skriver sedan ut meddelanden för att indikera att katalogerna har skapats.
Pytonorm
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)>

Produktion:

Directory 'techcodeview.com' created Directory 'Geeks' created>

Använder os.makedirs()

os.makedirs() metod i Python används för att skapa en katalog rekursivt. Det betyder att när man gör leaf-kataloger om någon katalog på mellannivå saknas, kommer os.makedirs()-metoden att skapa dem alla.

Exempel: Denna kod skapar två kataloger, Nikhil och c , inom olika överordnade kataloger. Den använderos.makedirs>funktion för att säkerställa att överordnade kataloger skapas om de inte finns.

Den ställer också in behörigheterna för c katalog. Koden skriver ut meddelanden för att bekräfta skapandet av dessa kataloger

Pytonorm
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)>

Produktion:

Directory 'Nikhil' created Directory 'c' created>

Lista ut filer och kataloger med Python

Det finns os.listdir() metod i Python används för att få listan över alla filer och kataloger i den angivna katalogen. Om vi ​​inte anger någon katalog kommer listan över filer och kataloger i den aktuella arbetskatalogen att returneras.

Exempel: Denna kod listar alla filer och kataloger i rotkatalogen (/) . Den använderos.listdir>funktion för att få listan över filer och kataloger i den angivna sökvägen och sedan skriva ut resultaten.

Pytonorm
import os path = '/' dir_list = os.listdir(path) print('Files and directories in '', path, '' :') print(dir_list)>

Produktion:

Files and directories in ' / ' : ['sys', 'run', 'tmp', 'boot', 'mnt', 'dev', 'proc', 'var', 'bin', 'lib64', 'usr',  'lib', 'srv', 'home', 'etc', 'opt', 'sbin', 'media']>

Ta bort katalog eller filer med Python

OS-modulen tillhandahåller olika metoder för att ta bort kataloger och filer i Python. Dessa är -

  • Använder os.remove()
  • Använder os.rmdir()

Använder metoden os.remove().

os.remove() metod i Python används för att ta bort eller ta bort en filsökväg. Denna metod kan inte ta bort eller ta bort en katalog. Om den angivna sökvägen är en katalog kommer OSError att uppstå av metoden.

Exempel: Anta att filen i mappen är:

Denna kod tar bort en fil med namnet file1.txt från den angivna platsen D:/Pycharm projects/techcodeview.com/Authors/Nikhil/. Den använderos.remove>funktion för att radera filen på den angivna sökvägen.

Pytonorm
import os file = 'file1.txt' location = 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil/' path = os.path.join(location, file) os.remove(path)>

Produktion:


Använder os.rmdir()

os.rmdir() metod i Python används för att ta bort eller ta bort en tom katalog. OSError kommer att uppstå om den angivna sökvägen inte är en tom katalog.

Exempel: Anta att katalogerna är

Denna kod försöker ta bort en katalog med namnet Nördar belägen vid D:/Pycharm-projekt/ .

Den använderos.rmdir>funktion för att radera katalogen. Om katalogen är tom kommer den att tas bort. Om den innehåller filer eller underkataloger kan du stöta på ett fel.

Pytonorm
import os directory = 'Geeks' parent = 'D:/Pycharm projects/' path = os.path.join(parent, directory) os.rmdir(path)>

Produktion:

Vanligt använda funktioner

Använder os.name-funktionen

Denna funktion ger namnet på den operativsystemberoende modulen som importeras . Följande namn har för närvarande registrerats: 'posix', 'nt', 'os2', 'ce', 'java' och 'riscos'.

Pytonorm
import os print(os.name)>

Produktion:

posix>

Notera: Det kan ge olika utdata på olika tolkar, till exempel 'posix' när du kör koden här.

Använder os.error-funktionen

Alla funktioner i denna modul höjs OSError i fallet med ogiltiga eller otillgängliga filnamn och sökvägar, eller andra argument som har rätt typ, men som inte accepteras av operativsystemet. os.error är ett alias för inbyggt OSError-undantag.

Denna kod läser innehållet i en fil med namnet 'GFG.txt' . Den använder en ' försök...förutom ' block för att hantera potentiella fel, särskilt IOFel ' som kan inträffa om det finns problem med att läsa filen.

Om ett fel uppstår kommer det att skriva ut ett meddelande som säger, Problem med att läsa: GFG.txt.

Pytonorm
import os try: filename = 'GFG.txt' f = open(filename, 'rU') text = f.read() f.close() except IOError: print('Problem reading: ' + filename)>

Produktion:

Problem reading: GFG.txt>

Använder os.popen()-funktionen

Denna metod öppnar ett rör till eller från kommandot. Returvärdet kan läsas eller skrivas beroende på om läget är 'r' eller 'w' .
Syntax:

 os.popen(command[, mode[, bufsize]])>

Parametrar läge & bufsize är inte nödvändiga parametrar, om de inte tillhandahålls tas standard 'r' för läge.

Denna kod öppnar en fil med namnet 'GFG.txt' i skrivläge, skriver Hallå till den och sedan läser och skriver ut dess innehåll. Användningen av os.popen> rekommenderas inte, och standardfiloperationer används för dessa uppgifter.

Pytonorm
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')>

Produktion:

Hello>

Notera: Utdata för popen() kommer inte att visas, det skulle göras direkta ändringar i filen.

Använder funktionen os.close().

Stäng filbeskrivning fd. En fil som öppnas med open(), kan endast stängas med close(). Men fil som öppnas genom os.popen(), kan stängas med close() eller os.close() . Om vi ​​försöker stänga en fil som öppnats med open(), med os.close(), skulle Python kasta TypeError.

Pytonorm
import os fd = 'GFG.txt' file = open(fd, 'r') text = file.read() print(text) os.close(file)>

Produktion:

Traceback (most recent call last):  File 'C:UsersGFGDesktopGeeksForGeeksOSFile.py', line 6, in   os.close(file) TypeError: an integer is required (got type _io.TextIOWrapper)>

Notera: Samma fel kanske inte visas på grund av den obefintliga filen eller behörigheten.

Använder os.rename()-funktionen

En fil old.txt kan döpas om till new.txt med hjälp av funktionen os.rename() . Namnet på filen ändras endast om filen finns och användaren har tillräcklig behörighet att ändra filen.

Pytonorm
import os fd = 'GFG.txt' os.rename(fd,'New.txt') os.rename(fd,'New.txt')>

Produktion:

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' ->'New.txt'>

Det finns ett filnamn GFG.txt, så när os.rename() används första gången, får filen ett nytt namn.

När funktionen os.rename() anropas andra gången, existerar filen New.txt och inte GFG.txt så Python kastar FileNotFoundError.

Använda os.remove()-funktionen

Med Os-modulen kan vi ta bort en fil i vårt system med hjälp av os.remove() metod. För att ta bort en fil måste vi skicka namnet på filen som en parameter.

Pytonorm
import os #importing os module. os.remove('file_name.txt') #removing the file.>

OS-modulen ger oss ett lager av abstraktion mellan oss och operativsystemet.

När vi arbetar med os modul ange alltid den absoluta sökvägen beroende på operativsystemet som koden kan köras på vilket operativsystem som helst, men vi måste ändra sökvägen exakt. Om du försöker ta bort en fil som inte finns får du FileNotFoundError .

Använder funktionen os.path.exists()

Denna metod kommer att kontrollera om en fil finns eller inte genom att skicka namnet på filen som en parameter. OS-modulen har en undermodul som heter PATH med hjälp av vilken vi kan utföra många fler funktioner.

Pytonorm
import os #importing os module result = os.path.exists('file_name') #giving the name of the file as a parameter. print(result)>

Produktion:

False>

Som i ovanstående kod, filen existerar inte den kommer att ge utdata False. Om filen finns kommer den att ge oss utdata True.

Använder os.path.getsize()-funktionen

I os.path.getsize( )-funktionen ger python oss storleken på filen i byte. För att använda denna metod måste vi skicka namnet på filen som en parameter.

Pytonorm
import os #importing os module size = os.path.getsize('filename') print('Size of the file is', size,' bytes.')>

Produktion:

hur man genererar slumptal i java
Size of the file is 192 bytes.>