The OS-moduuli Pythonissa tarjoaa toimintoja vuorovaikutukseen käyttöjärjestelmän kanssa. OS kuuluu Pythonin vakioapumoduulien alle. Tämä moduuli tarjoaa kannettavan tavan käyttää käyttöjärjestelmästä riippuvia toimintoja.
The *os* ja *os.path* moduulit sisältävät monia toimintoja vuorovaikutukseen tiedostojärjestelmän kanssa.
Python-OS-moduulifunktiot
Täällä keskustelemme joistakin Python os -moduulin tärkeistä toiminnoista:
- Nykyisen työhakemiston käsittely
- Hakemiston luominen
- Tiedostojen ja hakemistojen luettelointi Pythonilla
- Hakemiston tai tiedostojen poistaminen Pythonilla
Nykyisen työhakemiston käsittely
Harkitse Nykyinen työhakemisto (CWD) kansiona, jossa Python toimii. Aina kun tiedostoja kutsutaan vain niiden nimellä, Python olettaa sen alkavan CWD:ssä, mikä tarkoittaa, että vain nimiviittaus onnistuu vain, jos tiedosto on Pythonin CWD:ssä.
Huomautus: Kansio, jossa Python-skripti on käynnissä, tunnetaan nimellä Nykyinen hakemisto. Tämä ei ole polku, jossa Python-skripti sijaitsee.
Nykyisen työhakemiston hakeminen
Saadaksesi nykyisen työhakemiston sijainnin os.getcwd() käytetään.
Esimerkki: Tämä koodi käyttää ' os'> moduuli Python-komentosarjan nykyisen työhakemiston (CWD) hakemiseen ja tulostamiseen. Se hakee CWD:n käyttämällä ' os.getcwd()'> ja tulostaa sen sitten konsoliin.
import os cwd = os.getcwd() print('Current working directory:', cwd)> Lähtö:
Current working directory: /home/nikhil/Desktop/gfg>
Nykyisen työhakemiston muuttaminen
Nykyisen työhakemiston (CWD) muuttaminen os.chdir() menetelmää käytetään. Tämä menetelmä muuttaa CWD:n tietylle polulle. Se ottaa vain yhden argumentin uutena hakemistopoluna.
Huomautus: Nykyinen työhakemisto on kansio, jossa Python-skripti toimii.
Esimerkki: Koodi tarkistaa ja näyttää nykyisen työhakemiston (CWD) kahdesti: ennen ja jälkeen hakemiston muuttamisen yhden tason ylöspäin os.chdir('../')> . Se tarjoaa yksinkertaisen esimerkin nykyisen työhakemiston työskentelystä Pythonissa.
import os def current_path(): print('Current working directory before') print(os.getcwd()) print() current_path() os.chdir('../') current_path()> Lähtö:
Current working directory before C:UsersNikhil AggarwalDesktopgfg Current working directory after C:UsersNikhil AggarwalDesktop>
Hakemiston luominen
OS-moduulissa on käytettävissä erilaisia menetelmiä hakemiston luomiseen. Nämä ovat -
- os.mkdir()
- os.makedirs()
Käyttämällä os.mkdir()
Käyttämällä os.mkdir() Pythonin menetelmää käytetään luomaan polku-niminen hakemisto määritetyllä numeerisella tilassa. Tämä menetelmä aiheuttaa FileExistsError-tiedoston, jos luotava hakemisto on jo olemassa.
Esimerkki: Tämä koodi luo kaksi hakemistoa: techcodeview.com sisällä D:/Pycharm-projektit/ hakemisto ja Nörttiä sisällä D:/Pycharm-projektit hakemistosta.
- Ensimmäinen hakemisto luodaan käyttämällä
os.mkdir()>menetelmää määrittelemättä tilaa. - Toinen hakemisto luodaan samalla menetelmällä, mutta tietyssä tilassa (
0o666>) tarjotaan, mikä antaa luku- ja kirjoitusoikeudet. - Koodi tulostaa sitten viestejä, jotka osoittavat, että hakemistot on luotu.
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)> Lähtö:
Directory 'techcodeview.com' created Directory 'Geeks' created>
Käyttämällä os.makedirs()
os.makedirs() Pythonin menetelmää käytetään hakemiston luomiseen rekursiivisesti. Tämä tarkoittaa, että tehtäessä lehtihakemistoa, jos jokin keskitason hakemisto puuttuu, os.makedirs() -menetelmä luo ne kaikki.
Esimerkki: Tämä koodi luo kaksi hakemistoa, Nikhil ja c , eri päähakemistoissa. Se käyttääos.makedirs>-toiminto varmistaa, että ylähakemistot luodaan, jos niitä ei ole olemassa.
Se määrittää myös käyttöoikeudet c hakemistosta. Koodi tulostaa viestejä vahvistaakseen näiden hakemistojen luomisen
Python 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)> Lähtö:
Directory 'Nikhil' created Directory 'c' created>
Tiedostojen ja hakemistojen luettelointi Pythonilla
On os.listdir() Pythonin menetelmää käytetään saamaan luettelo kaikista määritetyn hakemiston tiedostoista ja hakemistoista. Jos emme määritä mitään hakemistoa, palautetaan luettelo nykyisen työhakemiston tiedostoista ja hakemistoista.
Esimerkki: Tämä koodi luettelee kaikki tiedostot ja hakemistot juurihakemistossa (/) . Se käyttääos.listdir>-toiminnolla saat luettelon määritetyn polun tiedostoista ja hakemistoista ja tulostaa sitten tulokset.
import os path = '/' dir_list = os.listdir(path) print('Files and directories in '', path, '' :') print(dir_list)> Lähtö:
Files and directories in ' / ' : ['sys', 'run', 'tmp', 'boot', 'mnt', 'dev', 'proc', 'var', 'bin', 'lib64', 'usr', 'lib', 'srv', 'home', 'etc', 'opt', 'sbin', 'media']>
Hakemiston tai tiedostojen poistaminen Pythonilla
OS-moduuli tarjoaa erilaisia menetelmiä hakemistojen ja tiedostojen poistamiseen Pythonissa. Nämä ovat -
- os.remove()
- Käyttämällä os.rmdir()
Käyttämällä os.remove()-menetelmää
os.remove() Pythonin menetelmää käytetään tiedostopolun poistamiseen tai poistamiseen. Tällä menetelmällä ei voi poistaa tai poistaa hakemistoa. Jos määritetty polku on hakemisto, menetelmä nostaa OSErrorin.
Esimerkki: Oletetaan, että kansion sisältämä tiedosto on:

Tämä koodi poistaa tiedoston nimeltä file1.txt määritetystä sijainnista D:/Pycharm projects/techcodeview.com/Authors/Nikhil/. Se käyttääos.remove>toiminto poistaaksesi tiedoston määritetystä polusta.
import os file = 'file1.txt' location = 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil/' path = os.path.join(location, file) os.remove(path)>
Lähtö:

Käyttämällä os.rmdir()
os.rmdir() Pythonin menetelmää käytetään poistamaan tai poistamaan tyhjä hakemisto. OSError nostetaan, jos määritetty polku ei ole tyhjä hakemisto.
Esimerkki: Oletetaan, että hakemistot ovat

Tämä koodi yrittää poistaa hakemiston nimeltä Nörttiä sijaitsee D:/Pycharm-projektit/ .
Se käyttääos.rmdir>toiminto poistaa hakemiston. Jos hakemisto on tyhjä, se poistetaan. Jos se sisältää tiedostoja tai alihakemistoja, saatat kohdata virheen.
import os directory = 'Geeks' parent = 'D:/Pycharm projects/' path = os.path.join(parent, directory) os.rmdir(path)>
Lähtö:

Yleisesti käytetyt toiminnot
os.name-funktion käyttö
Tämä toiminto antaa tuodun käyttöjärjestelmästä riippuvan moduulin nimen . Seuraavat nimet on tällä hetkellä rekisteröity: 'posix', 'nt', 'os2', 'ce', 'java' ja 'riscos'.
Python import os print(os.name)>
Lähtö:
posix>
Huomautus: Se voi antaa erilaisia tuloksia eri tulkkeilla, kuten 'posix', kun suoritat koodin täällä.
os.error-funktion käyttö
Kaikki tämän moduulin toiminnot nostavat OSE-virhe virheellisten tai käyttökelvottomien tiedostonimien ja polkujen tai muiden argumenttien tapauksessa, joilla on oikea tyyppi, mutta joita käyttöjärjestelmä ei hyväksy. os.error on sisäänrakennetun OSError-poikkeuksen alias.
Tämä koodi lukee nimetyn tiedoston sisällön 'GFG.txt' . Se käyttää a ' yritä… paitsi ' lohko käsittelemään mahdollisia virheitä, erityisesti ' IOError ' Tämä voi tapahtua, jos tiedoston lukemisessa on ongelmia.
Jos tapahtuu virhe, se tulostaa viestin, jossa sanotaan Lukemisongelma: GFG.txt.
Python import os try: filename = 'GFG.txt' f = open(filename, 'rU') text = f.read() f.close() except IOError: print('Problem reading: ' + filename)> Lähtö:
Problem reading: GFG.txt>
Käyttämällä os.popen()-funktiota
Tämä menetelmä avaa putken komentoon tai komennosta. Palautusarvo voidaan lukea tai kirjoittaa riippuen siitä, onko tila 'r' tai 'w' .
Syntaksi:
os.popen(command[, mode[, bufsize]])>
Parametrit mode & bufsize eivät ole välttämättömiä parametreja, jos niitä ei ole annettu, oletusarvoksi otetaan 'r'.
Tämä koodi avaa tiedoston nimeltä 'GFG.txt' kirjoitustilassa, kirjoittaa Hei siihen ja sitten lukee ja tulostaa sen sisällön. Käyttö os.popen> ei suositella, ja näihin tehtäviin käytetään tavallisia tiedostotoimintoja.
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')> Lähtö:
Hello>
Huomautus: Popen():n tulostetta ei näytetä, sillä tiedostoon tulee suoria muutoksia.
Käyttämällä os.close()-funktiota
Sulje tiedostokuvaaja fd. Open()-komennolla avattu tiedosto voidaan sulkea vain sulje()-toiminnolla. Mutta tiedosto, joka avataan os.popen(), voidaan sulkea komennolla close() tai os.close() . Jos yritämme sulkea open()-komennolla avatun tiedoston komennolla os.close(), Python heittäisi TypeErrorin.
Python import os fd = 'GFG.txt' file = open(fd, 'r') text = file.read() print(text) os.close(file)>
Lähtö:
Traceback (most recent call last): File 'C:UsersGFGDesktopGeeksForGeeksOSFile.py', line 6, in os.close(file) TypeError: an integer is required (got type _io.TextIOWrapper)>
Huomautus: Samaa virhettä ei välttämättä esiinny, koska tiedosto tai käyttöoikeus ei ole olemassa.
Käyttämällä os.rename()-funktiota
Tiedosto old.txt voidaan nimetä uudelleen uudeksi.txt:ksi funktiolla os.rename() . Tiedoston nimi muuttuu vain, jos tiedosto on olemassa ja käyttäjällä on riittävät oikeudet muuttaa tiedostoa.
Python import os fd = 'GFG.txt' os.rename(fd,'New.txt') os.rename(fd,'New.txt')>
Lähtö:
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'>
Tiedostonimi GFG.txt on olemassa, joten kun os.rename() käytetään ensimmäisen kerran, tiedosto nimetään uudelleen.
Kun funktiota os.rename() kutsutaan toisen kerran, tiedosto New.txt on olemassa eikä GFG.txt, joten Python heittää FileNotFoundErrorin.
Käyttämällä os.remove()-funktiota
Os-moduulin avulla voimme poistaa tiedoston järjestelmästämme käyttämällä os.remove() menetelmä. Tiedoston poistamiseksi meidän on välitettävä tiedoston nimi parametrina.
Python import os #importing os module. os.remove('file_name.txt') #removing the file.> OS-moduuli tarjoaa meille kerroksen abstraktiota meidän ja käyttöjärjestelmän välillä.
Kun työskentelemme os moduuli määrittää aina absoluuttisen polun käyttöjärjestelmästä riippuen, koodi voi toimia missä tahansa käyttöjärjestelmässä, mutta meidän on muutettava polku tarkasti. Jos yrität poistaa tiedoston, jota ei ole olemassa, saat sen FileNotFoundError .
Käyttämällä os.path.exists()-funktiota
Tämä menetelmä tarkistaa, onko tiedosto olemassa vai ei, välittämällä tiedoston nimen parametrina. OS-moduulissa on alimoduuli nimeltä PATH, jonka avulla voimme suorittaa monia muita toimintoja.
Python import os #importing os module result = os.path.exists('file_name') #giving the name of the file as a parameter. print(result)> Lähtö:
False>
Kuten yllä olevassa koodissa, tiedostoa ei ole olemassa, se antaa tuloksen False. Jos tiedosto on olemassa, se antaa meille tuloksen True.
Käyttämällä os.path.getsize()-funktiota
Sisään os.path.getsize( ) -toiminto, python antaa meille tiedoston koon tavuina. Tämän menetelmän käyttämiseksi meidän on välitettävä tiedoston nimi parametrina.
Python import os #importing os module size = os.path.getsize('filename') print('Size of the file is', size,' bytes.')> Lähtö:
lajittele taulukko java
Size of the file is 192 bytes.>