A működő könyvtár egy aktuális könyvtár, amelyben dolgozunk, és ahonnan a szkript fut; ezen a könyvtáron belül sok fájlhoz férünk hozzá (a benne találhatókhoz). Néha azonban meg kell változtatnunk a könyvtárakat, és oda -vissza kell lépnünk a fájlok és mappák között. Ebben az oktatóanyagban megtanuljuk, hogyan kell megváltoztatni a Python munkakönyvtárát.
OS MODUL
Elsősorban ennek eléréséhez szükségünk lesz a Python os moduljára. Mivel előre telepítve van, nem kell semmit telepíteni. Az OS modult általában a Pythonban használják a rendszer fájljainak és mappáinak interakciójához, kezeléséhez és módosításához. Például létrehozhatunk/eltávolíthatunk könyvtárakat, megváltoztathatjuk a működő könyvtárakat, az áttekintő fájlokat, ellenőrizhetjük, hogy léteznek -e fájlok stb. ... Mondanom sem kell, hogy ez egy nagyon hasznos modul.
Az aktuális munkakönyvtár beszerzése
Az aktuális munkakönyvtár beszerzéséhez a getcwd () metódus az os modulból. Felhívjuk figyelmét, hogy itt nem érvelnek. Esetemben a kimenet az volt /home/kalyani/PycharmProjects/pythonProject1 Ubuntu gépen (PyCharm fut). Ez azt jelenti, hogy a fő script - main.py - ebben a mappában található (pythonProject1). És ne feledje, a munkakönyvtár, mindenekelőtt egy mappa!
import te
# Szerezze be az aktuális munkakönyvtárat
aktuális_könyvtár= te.getcwd()
nyomtatás('A jelenlegi munkakönyvtár %s'% current_directory)
Az aktuális munkakönyvtár megváltoztatása
A munkakönyvtár megváltoztatása egyszerű a chdir () metódussal, amely pontosan egy argumentumot tartalmaz - az új helyre vezető utat karakterláncként.
import te
# Szerezze be az aktuális munkakönyvtárat
aktuális_könyvtár= te.getcwd()
nyomtatás('A jelenlegi munkakönyvtár %s'% current_directory)
Az első dolog, amit meg kell tenni, a munkakönyvtár új elérési útjának beállítása. Ubuntu esetén ez nagyon egyszerű!
# állítsunk be egy új könyvtáratnew_working_directory= '/home/kalyani/Desktop/PythonDirectory'
Windows rendszeren dupla fordított perjelet kell használnia a könyvtár meghatározásához.
#new_working_directory = 'C: Users \ never \ Desktop \ PythonDirectory'
Ezután definiálunk egy próba-kivétel záradékot. Ha létezik az útvonal, akkor a chdir () metódussal módosítjuk a munkakönyvtárat egy új munkakönyvtárra. Ha az útvonal nem könyvtár, akkor hibát fog dobni!
próbáld ki:te.chdir(new_working_directory)
nyomtatás('A munkakönyvtár megváltozott!')
nyomtatás('WD: %s'%te.getcwd())
kivéveNotADirectory Hiba:
nyomtatás('Nem választott könyvtárat.')
kivéveFileNotFoundError:
nyomtatás('A mappa nem található. Az útvonal helytelen.)
kivéveEngedély Hiba:
nyomtatás('Nincs hozzáférése ehhez a mappához/fájlhoz.')
A teljes kód így nézne ki:
import te# Szerezze be az aktuális munkakönyvtárat
aktuális_könyvtár= te.getcwd()
nyomtatás('A jelenlegi munkakönyvtár %s'% current_directory)
# állítsunk be egy új könyvtárat
#new_working_directory = '/home/kalyani/Desktop/PythonDirectory'
new_working_directory=r'C: Uszolgál nvalaha Dasztal PythonDirectory '
próbáld ki:
te.chdir(new_working_directory)
nyomtatás('A munkakönyvtár megváltozott!')
nyomtatás('WD: %s'%te.getcwd())
kivéveNotADirectory Hiba:
nyomtatás('Nem választott könyvtárat.')
kivéveFileNotFoundError:
nyomtatás('A mappa nem található. Az útvonal helytelen.)
kivéveEngedély Hiba:
nyomtatás('Nincs hozzáférése ehhez a mappához/fájlhoz.')
Valójában a hibák különféle kivételeket okozhatnak:
én. NotADirectory Hiba:
Tegyük fel például, hogy a következő kódot írtam az útvonalhoz vagy az új munkakönyvtárhoz:
new_working_directory= 'C:\Felhasználók\soha\Asztal\PythonDirectory\text.txt 'Itt megjegyezheti, hogy a text.txt nevű szöveges dokumentum útvonalát mutatom. Ez utóbbi pedig NotADirectoryError néven ismert hibát dob. Más szóval, az útvonalnak valamilyen könyvtárra kell mutatnia.
ii. FileNotFoundError:
A FileNotFoundError dobódik, ha az útvonal nem létezik. Tehát tegyük fel egy pillanatra, hogy az asztalon nincs PythonDirectory nevű könyvtár, és az utat a következőkre állítottam:
new_working_directory= 'C: Uszolgál nvalaha Dasztal PythonDirectory 'Dobni fogja a FileNotFoundError . Ez a hiba egyszerűen azt jelenti, hogy a könyvtár, amelyre mutatunk, nem létezik, vagy nem található.
iii. Engedély Hiba:
NAK NEK PermissionError akkor jelenik meg, ha a felhasználónak nincs megfelelő jogosultsága a kiválasztott könyvtár módosításához vagy eléréséhez.
iv. Szintaktikai hiba:
Szintaktikai hiba akkor fordul elő, ha szintaktikai hiba van az elérési útban. Windows alatt, ha azt írjuk, hogy:
new_working_directory= 'C: Uszolgál nvalaha Dasztal PythonDirectory 'Synthax hiba lép fel! A szintaktikai hibát azonban sokkal nehezebb felfogni, mivel ki kell értékelni, importálni vagy végrehajtani. Mint ilyen, amikor próba kivételű blokkokat írunk, nehezebb ilyen hibát észlelni.
Windows rendszeren a hibák elkerülése érdekében az útvonalat három különböző módon írhatja ki, így nem kerül sor hibára:
1. módszer: Ebben a módszerben a karakterlánc beállítása előtt adjunk hozzá egy r -t.
new_working_directory=r'C: Uszolgál nvalaha Dasztal PythonDirectory '2. módszer: Dupla fordított perjelet használunk.
new_working_directory= 'C:\Felhasználók\soha\Asztal\PythonDirectory '3. módszer: Egyetlen perjelet használunk.
new_working_directory= 'C:/Felhasználók/soha/Desktop/PythonDirectory'ÚTMUTATÓ MODUL
A munkakönyvtárat az útvonal modul segítségével is megváltoztathatjuk. Először telepítse az útvonalat az alábbiak szerint (megadtam a modul linkjét is):
pip telepítési útvonal(https: // pypi.org/project/path/)
Ezután ezt írjuk:
tól tőlpályaimportPályaimport te
Először nézzük meg az aktuális munkakönyvtárat az os modul és a getcwd () metódus segítségével.
# nézzük meg az aktuális munkakönyvtáratcwd= te.getcwd()
nyomtatás('Az aktuális munkakönyvtár: %s'% cwd)
nyomtatás('---------------------------------------------' ')
Ezután állítsa be az új munkakönyvtár elérési útját. Ebben az esetben úgy döntöttem, hogy példát mutatok egy Windows gépen:
# állítsa be az új munkakönyvtár elérési útjátnew_path= 'C:\Felhasználók\soha\Asztal\PythonDirectory '
A Path () használatával módosítsa a munkakönyvtárat. A Path () itt csak egyetlen érvet használ: az új munkakönyvtárhoz vezető tényleges elérési utat, és a chdir () metódust használja a feladat végrehajtásához.
# módosítsa a munkakönyvtáratPálya(new_path).chdir()
Ellenőrizze újra, hogy a munkakönyvtár megváltozott-e. És itt, amint a képen is látható, a munkakönyvtár valóban megváltozott!
# Ellenőrizze újra a munkakönyvtárat# megváltozott?
cwd= te.getcwd()
nyomtatás('Az új munkakönyvtár %s'% cwd)
A munkakönyvtárak megváltoztatása egyszerű feladat, és egyetlen módszert igényel - a chdir (elérési út) metódust. Attól függően azonban, hogy Windows vagy Linux gépen van -e, óvatosnak kell lennie az útvonal karakterláncként való bevitelével. Ha helytelenül adta meg, hibát okozhat!
Boldog kódolást!