Работна директория е текуща директория, в която работим и от която се изпълнява скриптът; в тази директория имаме достъп до много файлове (тези, които се намират в нея). Понякога обаче се налага да сменим директориите и да вървим напред -назад между файлове и папки. В този урок ще научим как да променим работната директория в Python.
МОДУЛ НА ОС
На първо място, за да постигнем това, ще имаме нужда от os модула в Python. Тъй като е предварително инсталиран, няма нужда да инсталирате нищо. Модулът за операционна система обикновено се използва в Python за взаимодействие, управление и промяна на файлове и папки в системата. Например, можем да създаваме/премахваме директории, да променяме работни директории, да преглеждаме файлове, да проверяваме дали файловете съществуват и т.н. ... Излишно е да казвам, че това е много полезен модул.
Получаване на текущата работна директория
За да получим текущата работна директория, използваме метод getcwd () от os модула. Моля, обърнете внимание, че не се подава аргумент. В моя случай изходът беше /home/kalyani/PycharmProjects/pythonProject1 на машина на Ubuntu (работеща с PyCharm). Това означава, че основният скрипт - main.py - се намира в тази папка (pythonProject1). И имайте предвид, работната директория, преди всичко папка!
внос Вие
# Вземете текущата работна директория
текущ_директория= Вие.getcwd()
печат(„Текущата ви работна директория е %s“% текуща_директория)
Промяна на текущата работна директория
Промяната на работната ви директория е лесна с метода chdir (), който приема точно един аргумент - пътя до новото местоположение като низ.
внос Вие
# Вземете текущата работна директория
текущ_директория= Вие.getcwd()
печат(„Текущата ви работна директория е %s“% текуща_директория)
Първото нещо, което трябва да направите, е да зададете новия път към работната директория. В Ubuntu това е много просто!
# нека зададем нова работна директорияnew_working_directory= '/home/kalyani/Desktop/PythonDirectory'
В Windows трябва да използвате двойни наклонени черти за определяне на директорията.
#new_working_directory = 'C: \ Потребители \ никога \ Desktop \ PythonDirectory'
След това дефинираме клауза за изключване. Ако пътят съществува, ще използваме метода chdir (), за да променим работната директория в нова работна директория. Ако пътят не е директория, той ще изведе грешка!
опитвам:Вие.chdir(new_working_directory)
печат('Работната директория е променена!')
печат(„WD: %s“%Вие.getcwd())
с изключениеNotADirectoryError:
печат('Не сте избрали директория.')
с изключениеFileNotFoundError:
печат(„Папката не е намерена. Пътят е неправилен. ')
с изключениеРазрешение Грешка:
печат(„Нямате достъп до тази папка/файл.“)
Пълният код ще изглежда така:
внос Вие# Вземете текущата работна директория
текущ_директория= Вие.getcwd()
печат(„Текущата ви работна директория е %s“% текуща_директория)
# нека зададем нова работна директория
#new_working_directory = '/home/kalyani/Desktop/PythonDirectory'
new_working_directory=r'° С: UсервирамннякогаДesktop PythonDirectory '
опитвам:
Вие.chdir(new_working_directory)
печат('Работната директория е променена!')
печат(„WD: %s“%Вие.getcwd())
с изключениеNotADirectoryError:
печат('Не сте избрали директория.')
с изключениеFileNotFoundError:
печат(„Папката не е намерена. Пътят е неправилен. ')
с изключениеРазрешение Грешка:
печат(„Нямате достъп до тази папка/файл.“)
Всъщност грешките могат да доведат до различни видове изключения:
i. NotADirectoryError:
Да предположим за пример, че съм написал следния код за пътя или новата работна директория:
new_working_directory= '° С:\Потребители\никога\работен плот\PythonDirectory\text.txt 'Това, което можете да отбележите тук, е, че посочвам пътя към текстов документ, наречен text.txt. Последният ще изхвърли грешка, известна като NotADirectoryError. С други думи, вашият път трябва да сочи към някаква директория.
ii. FileNotFoundError:
FileNotFoundError се изхвърля, когато пътят не съществува. Така че, да предположим за момента, че нямам директория с името PythonDirectory на моя работен плот и че зададох пътя си на:
new_working_directory= '° С: UсервирамннякогаДesktop PythonDirectory 'Ще хвърли a FileNotFoundError . Тази грешка просто означава, че директорията, към която сочим, не съществува или не е намерена.
iii. Разрешение Грешка:
ДА СЕ PermissionError се повдига, когато потребителят няма подходящи разрешения за промяна или достъп до избраната директория.
iv. Синтактична грешка:
Синтаксична грешка възниква, когато в пътя има синтаксична грешка. В Windows, ако напишем да кажем:
new_working_directory= '° С: UсервирамннякогаДesktop PythonDirectory 'Възниква грешка в синтаксиса! Синтаксичната грешка обаче е много по -трудна за улавяне, тъй като трябва да бъде оценена, импортирана или изпълнена. Като такива, когато пишем блокове try-except, е по-трудно да се улови такава грешка.
В Windows, за да се избегнат грешки, пътят може да бъде изписан по един от трите различни начина, така че да не се изхвърлят грешки:
Метод 1: В този метод добавяме r, преди да зададем низа.
new_working_directory=r'° С: UсервирамннякогаДesktop PythonDirectory 'Метод 2: Използваме двойни обратни наклонени черти.
new_working_directory= '° С:\Потребители\никога\работен плот\PythonDirectory 'Метод 3: Използваме една наклонена черта напред.
new_working_directory= 'C:/Users/never/Desktop/PythonDirectory'ПЪТЕН МОДУЛ
Също така можем да променим работната директория, като използваме модула пътека. Първо, инсталирайте пътя, както следва (дадох и връзката към модула):
път за инсталиране на pip(https: // pypi.орг/проект/път/)
След това пишем:
отпътвносПътвнос Вие
Първо, нека проверим текущата работна директория, използвайки модула os и метода getcwd ().
# нека проверим текущата работна директорияcwd= Вие.getcwd()
печат('Текущата работна директория е: %s'% cwd)
печат('---------------------------------------------')
След това задайте пътя към новата работна директория. В този случай избрах да дам пример на машина с Windows:
# задайте пътя към новата работна директорияnew_path= '° С:\Потребители\никога\работен плот\PythonDirectory '
Използвайте Path (), за да промените работната директория. Path () приема само един аргумент тук: действителния път към новата работна директория и използва метода chdir () за изпълнение на задачата.
# променете работната директорияПът(new_path).chdir()
Проверете отново дали работната директория е променена. И тук, както можете да видите на снимката, работната директория наистина е променена!
# Проверете отново работната директория# променено ли е?
cwd= Вие.getcwd()
печат(„Новата работна директория е %s“% cwd)
Промяната на работните директории е лесна задача и изисква само един метод - метода chdir (път). Въпреки това, в зависимост от това дали сте на Windows машина или Linux машина, трябва да внимавате как въвеждате пътя като низ. При неправилно въвеждане може да се появи грешка!
Честито кодиране!