Как да промените работния указател в Python

How Change Working Directory Python



Работна директория е текуща директория, в която работим и от която се изпълнява скриптът; в тази директория имаме достъп до много файлове (тези, които се намират в нея). Понякога обаче се налага да сменим директориите и да вървим напред -назад между файлове и папки. В този урок ще научим как да променим работната директория в 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 машина, трябва да внимавате как въвеждате пътя като низ. При неправилно въвеждане може да се появи грешка!

Честито кодиране!