Slik endrer du arbeidskatalogen i Python

How Change Working Directory Python



En arbeidskatalog er en gjeldende katalog der vi jobber og som skriptet kjøres fra; i denne katalogen har vi tilgang til mange filer (de som ligger i den). Noen ganger må vi imidlertid endre kataloger og gå frem og tilbake mellom filer og mapper. I denne opplæringen lærer vi hvordan du endrer arbeidskatalogen i Python.

OS -MODUL

For det første trenger vi OS -modulen i Python for å oppnå dette. Siden den kommer forhåndsinstallert, er det ikke nødvendig å installere noe. OS -modulen brukes vanligvis i Python til å samhandle, administrere og endre filer og mapper på systemet. For eksempel kan vi opprette/fjerne kataloger, endre arbeidskataloger, gjennomgangsfiler, sjekke om det finnes filer, etc.… Unødvendig å si at det er en veldig nyttig modul.







Få den nåværende arbeidskatalogen

For å få den nåværende arbeidskatalogen bruker vi getcwd () -metoden fra os -modulen. Vær oppmerksom på at ingen argumenter blir bestått. I mitt tilfelle var utgangen /home/kalyani/PycharmProjects/pythonProject1 på en Ubuntu -maskin (kjører PyCharm). Dette betyr at hovedskriptet - main.py - ligger i denne mappen (pythonProject1). Og husk deg, arbeidskatalogen, først og fremst en mappe!



import du

# Få den nåværende arbeidskatalogen

current_directory= du.getcwd()

skrive ut('Din nåværende arbeidskatalog er %s'% current_directory)



Endre gjeldende arbeidskatalog

Det er enkelt å endre arbeidskatalogen med metoden chdir (), som tar nøyaktig ett argument - banen til den nye plasseringen som en streng.





import du

# Få den nåværende arbeidskatalogen

current_directory= du.getcwd()

skrive ut('Din nåværende arbeidskatalog er %s'% current_directory)

Det første du må gjøre er å sette den nye banen til arbeidskatalogen. På Ubuntu er dette veldig enkelt!

# la oss sette en ny arbeidskatalog

new_working_directory= '/home/kalyani/Desktop/PythonDirectory'

På Windows må du bruke doble skråstreker for å definere katalogen.



#new_working_directory = 'C: \ Users \ never \ Desktop \ PythonDirectory'

Deretter definerer vi en prøve-unntaksklausul. Hvis banen eksisterer, bruker vi metoden chdir () til å endre arbeidskatalogen til en ny arbeidskatalog. Hvis banen ikke er en katalog, vil den kaste en feil!

prøve:

du.chdir(new_working_directory)

skrive ut('Arbeidskatalogen er endret!')

skrive ut('WD: %s'%du.getcwd())


unntattNotADirectoryError:

skrive ut('Du har ikke valgt en katalog.')


unntattFileNotFoundError:

skrive ut('Mappen ble ikke funnet. Banen er feil. ')


unntattTillatelse Feil:

skrive ut('Du har ikke tilgang til denne mappen/filen.')

Hele koden vil se slik ut:

import du

# Få den nåværende arbeidskatalogen

current_directory= du.getcwd()

skrive ut('Din nåværende arbeidskatalog er %s'% current_directory)

# la oss sette en ny arbeidskatalog

#new_working_directory = '/home/kalyani/Desktop/PythonDirectory'

new_working_directory=r'C: Utjene nnoen gang Desktop PythonDirectory '

prøve:

du.chdir(new_working_directory)

skrive ut('Arbeidskatalogen er endret!')

skrive ut('WD: %s'%du.getcwd())


unntattNotADirectoryError:

skrive ut('Du har ikke valgt en katalog.')


unntattFileNotFoundError:

skrive ut('Mappen ble ikke funnet. Banen er feil. ')


unntattTillatelse Feil:

skrive ut('Du har ikke tilgang til denne mappen/filen.')

Faktisk kan feil føre til forskjellige typer unntak:

Jeg. NotADirectoryError:

Anta nå at jeg for eksempel skrev følgende kode for banen eller den nye arbeidskatalogen:

new_working_directory= 'C:\Brukere\aldri\Skrivebord\PythonDirectory\text.txt '

Det du kan merke deg her er at jeg peker banen til et tekstdokument som heter text.txt. Og sistnevnte vil kaste en feil kjent som en NotADirectoryError. Med andre ord må banen peke til en katalog av noe slag.

ii. FileNotFoundError:

En FileNotFoundError kastes når banen ikke finnes. Så anta at jeg for øyeblikket ikke har en katalog med navnet PythonDirectory på skrivebordet mitt, og at jeg angir banen til:

new_working_directory= 'C: Utjene nnoen gang Desktop PythonDirectory '

Det vil kaste en FileNotFoundError . Denne feilen betyr ganske enkelt at katalogen vi peker på ikke eksisterer eller ikke ble funnet.

iii. Tillatelse Feil:

TIL TillatelseFeil blir hevet når brukeren ikke har tilstrekkelige tillatelser til å endre eller få tilgang til den valgte katalogen.

iv. Syntaksfeil:

En syntaksfeil oppstår når det er en syntaksfeil i banen. På Windows, hvis vi skriver for å si:

new_working_directory= 'C: Utjene nnoen gang Desktop PythonDirectory '

En synthax -feil blir kastet! Imidlertid er en syntaksfeil mye vanskeligere å fange da den må evalueres, importeres eller utføres. Som sådan, når vi skriver blokker med unntak av prøver, er det vanskeligere å fange opp en slik feil.

På Windows, for å unngå feil, kan banen skrives ut på en av tre forskjellige måter slik at ingen feil blir kastet:

Metode 1: I denne metoden legger vi til en r før vi setter ut strengen.

new_working_directory=r'C: Utjene nnoen gang Desktop PythonDirectory '

Metode 2: Vi bruker doble skråstreker.

new_working_directory= 'C:\Brukere\aldri\Skrivebord\PythonDirectory '

Metode 3: Vi bruker en enkelt skråstrek.

new_working_directory= 'C:/Users/never/Desktop/PythonDirectory'

STI -MODUL

Vi kan også endre arbeidskatalogen ved hjelp av banemodulen. Installer først banen som følger (jeg har også gitt lenken til modulen):

pip installeringsbane

(https: // pypi.org/prosjekt/bane/)

Deretter skriver vi:

frastiimportSti

import du

La oss først sjekke den nåværende arbeidskatalogen ved å bruke OS -modulen og metoden getcwd ().

# la oss sjekke den nåværende arbeidskatalogen

cwd= du.getcwd()

skrive ut('Den nåværende arbeidskatalogen er: %s'% cwd)

skrive ut('---------------------------------------------')

Sett deretter banen til den nye arbeidskatalogen. I dette tilfellet har jeg valgt å sette eksemplet på en Windows -maskin:

# angi banen til den nye arbeidskatalogen

ny_sti= 'C:\Brukere\aldri\Skrivebord\PythonDirectory '

Bruk Path () for å endre arbeidskatalogen. Path () tar bare ett argument her: den faktiske banen til den nye arbeidskatalogen og bruker metoden chdir () for å utføre oppgaven.

# endre arbeidskatalogen

Sti(ny_sti).chdir()

Kontroller om arbeidskatalogen er endret på nytt. Og her, som du kan se på bildet, har arbeidskatalogen faktisk blitt endret!

# Kontroller arbeidskatalogen på nytt

# er det endret?

cwd= du.getcwd()

skrive ut('Den nye arbeidskatalogen er %s'% cwd)

Å endre arbeidsmapper er en enkel oppgave og tar bare én metode - chdir (banen) -metoden. Avhengig av om du er på en Windows -maskin eller en Linux -maskin, må du imidlertid være forsiktig med hvordan du legger inn banen som en streng. Hvis det er lagt inn feil, kan det føre til en feil!

Glad koding!