Paano Palitan ang Working Directory sa Python

How Change Working Directory Python



Ang isang gumaganang direktoryo ay isang kasalukuyang direktoryo kung saan kami ay nagtatrabaho at kung saan pinapatakbo ang script; sa loob ng direktoryong ito, mayroon kaming access sa maraming mga file (ang mga matatagpuan sa loob nito). Gayunpaman, kailangan nating baguhin minsan ang mga direktoryo at pabalik-balik sa pagitan ng mga file at folder. Sa tutorial na ito, matututunan natin kung paano baguhin ang gumaganang direktoryo sa Python.

OS MODULE

Sa unang lugar, upang makamit ito, kakailanganin natin ang os module sa Python. Dahil pre-install na ito, hindi na kailangang mag-install ng anuman. Ang module ng OS ay karaniwang ginagamit sa Python upang makipag-ugnay, pamahalaan at baguhin ang mga file at folder sa system. Halimbawa, maaari kaming lumikha / mag-alis ng mga direktoryo, baguhin ang mga gumaganang direktoryo, maglakad na mga file, suriin kung mayroon ang mga file, atbp.… Hindi na kailangang sabihin na ito ay isang napaka kapaki-pakinabang na module.







Pagkuha ng kasalukuyang direktoryo ng pagtatrabaho

Upang makuha ang kasalukuyang direktoryo ng pagtatrabaho, ginagamit namin ang paraan ng getcwd () mula sa os module. Mangyaring tandaan dito na walang argument na naipasa. Sa aking kaso, ang output ay / home / kalyani / PycharmProjects / pythonProject1 sa isang makina ng Ubuntu (tumatakbo ang PyCharm). Nangangahulugan ito na ang pangunahing script - main.py - ay matatagpuan sa loob ng folder na ito (pythonProject1). At isipin mo, ang gumaganang direktoryo, una sa lahat isang folder!



angkat ikaw

# Kunin ang kasalukuyang gumaganang direktoryo

kasalukuyang_directory= ikaw.getcwd()

mag-print('Ang iyong kasalukuyang gumaganang direktoryo ay% s'% kasalukuyang_direktoryo)



Ang pagbabago ng kasalukuyang gumaganang direktoryo

Ang pagbabago ng iyong gumaganang direktoryo ay madali sa pamamaraang chdir (), na tumatagal ng eksaktong isang argumento - ang landas sa bagong lokasyon bilang isang string.





angkat ikaw

# Kunin ang kasalukuyang gumaganang direktoryo

kasalukuyang_directory= ikaw.getcwd()

mag-print('Ang iyong kasalukuyang gumaganang direktoryo ay% s'% kasalukuyang_direktoryo)

Ang unang bagay na dapat gawin ay itakda ang bagong landas sa gumaganang direktoryo. Sa Ubuntu, ito ay napaka prangka!

# magtakda tayo ng isang bagong gumaganang direktoryo

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

Sa Windows, kailangan mong gumamit ng dobleng backslashes upang tukuyin ang direktoryo.



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

Susunod, tinutukoy namin ang isang sugnay na maliban sa pagsubok. Kung mayroon ang landas, gagamitin namin ang chdir () na pamamaraan upang mabago ang gumaganang direktoryo sa isang bagong gumaganang direktoryo. Kung ang landas ay hindi isang direktoryo, magtatapon ito ng isang error!

subukan mo:

ikaw.chdir(new_working_directory)

mag-print('Ang gumaganang direktoryo ay nabago!')

mag-print('WD:% s'%ikaw.getcwd())


maliban saNotADirectoryError:

mag-print('Hindi ka pumili ng isang direktoryo.')


maliban saFileNotFoundError:

mag-print('Ang folder ay hindi natagpuan. Ang landas ay hindi tama. ')


maliban saPahintulotError:

mag-print('Wala kang access sa folder / file na ito.')

Ang buong code ay ganito ang hitsura:

angkat ikaw

# Kunin ang kasalukuyang gumaganang direktoryo

kasalukuyang_directory= ikaw.getcwd()

mag-print('Ang iyong kasalukuyang gumaganang direktoryo ay% s'% kasalukuyang_direktoryo)

# magtakda tayo ng isang bagong gumaganang direktoryo

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

new_working_directory=r'C: Umaglingkod nkailanman Desktop PythonDirectory '

subukan mo:

ikaw.chdir(new_working_directory)

mag-print('Ang gumaganang direktoryo ay nabago!')

mag-print('WD:% s'%ikaw.getcwd())


maliban saNotADirectoryError:

mag-print('Hindi ka pumili ng isang direktoryo.')


maliban saFileNotFoundError:

mag-print('Ang folder ay hindi natagpuan. Ang landas ay hindi tama. ')


maliban saPahintulotError:

mag-print('Wala kang access sa folder / file na ito.')

Sa katunayan, ang mga pagkakamali ay maaaring magtaas ng iba't ibang mga uri ng mga pagbubukod:

ako NotADirectoryError:

Ngayon ipagpalagay na para sa isang halimbawa na isinulat ko ang sumusunod na code para sa landas o sa bagong gumaganang direktoryo:

new_working_directory= 'C:\Mga gumagamit\hindi kailanman\Desktop\Direktoryo ng Python\text.txt '

Ang mapapansin mo rito ay itinuturo ko ang landas sa isang tekstong dokumento na tinatawag na text.txt. At ang huli ay magtatapon ng isang error na kilala bilang isang NotADirectoryError. Sa madaling salita, ang iyong landas ay dapat na magturo sa isang direktoryo ng ilang uri.

ii. FileNotFoundError:

Ang isang FileNotFoundError ay itinapon kapag ang landas ay hindi umiiral. Kaya, ipagpalagay para sa sandaling ito na wala akong isang direktoryo sa pamamagitan ng pangalan ng PythonDirectory sa aking Desktop at itinakda ko ang aking landas sa:

new_working_directory= 'C: Umaglingkod nkailanman Desktop PythonDirectory '

Itatapon nito a FileNotFoundError . Nangangahulugan lamang ang error na ito na ang direktoryo na tinuturo namin ay wala o hindi nahanap.

iii. PahintulotError:

SA PahintulotError tataas kapag ang gumagamit ay walang sapat na mga pahintulot upang baguhin o i-access ang napiling direktoryo.

iv. SyntaxError:

Nagaganap ang isang error sa syntax kapag mayroong isang error sa syntax sa landas. Sa Windows, kung nagsusulat kami upang sabihin:

new_working_directory= 'C: Umaglingkod nkailanman Desktop PythonDirectory '

Ang isang error sa synthax ay itinapon! Gayunpaman, ang isang error sa syntax ay mas mahirap mahuli dahil kailangan itong suriin, i-import, o ipatupad. Tulad ng naturan, kapag nagsusulat kami ng mga bloke na subukan, maliban sa mahirap na mahuli ang gayong error.

Sa Windows, upang maiwasan ang anumang mga pagkakamali, ang landas ay maaaring isulat sa isa sa tatlong magkakaibang paraan na walang mga error na itinapon:

Paraan 1: Sa pamamaraang ito, nagdagdag kami ng isang r bago i-set ang string.

new_working_directory=r'C: Umaglingkod nkailanman Desktop PythonDirectory '

Paraan 2: Gumagamit kami ng dobleng mga backslashes.

new_working_directory= 'C:\Mga gumagamit\hindi kailanman\Desktop\PythonDirectory '

Paraan 3: Gumagamit kami ng isang solong pasulong na slash.

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

PATH MODULE

Maaari rin nating baguhin ang gumaganang direktoryo gamit ang module ng path. Una, i-install ang landas tulad ng sumusunod (ibinigay ko rin ang link sa modyul):

pip install path

(https: // pypiorg/ proyekto / landas /)

Susunod, nagsusulat kami:

mula salandasangkatLandas

angkat ikaw

Una, suriin natin ang kasalukuyang direktoryo ng pagtatrabaho gamit ang os module at ang getcwd () na pamamaraan.

# suriin natin ang kasalukuyang direktoryo ng pagtatrabaho

cwd= ikaw.getcwd()

mag-print('Ang kasalukuyang gumaganang direktoryo ay:% s'% cwd)

mag-print('--------------------------------------------')

Susunod, itakda ang landas sa bagong gumaganang direktoryo. Sa kasong ito, pinili kong itakda ang halimbawa sa isang makina sa Windows:

# itakda ang landas sa bagong gumaganang direktoryo

bagong_path= 'C:\Mga gumagamit\hindi kailanman\Desktop\PythonDirectory '

Gumamit ng Path () upang baguhin ang gumaganang direktoryo. Ang Path () ay tumatagal lamang ng isang argument dito: ang aktwal na landas sa bagong gumaganang direktoryo at ginagamit ang chdir () na paraan upang magawa ang gawain.

# baguhin ang gumaganang direktoryo

Landas(bagong_path).chdir()

Suriing muli kung ang gumaganang direktoryo ay nabago. At dito, tulad ng nakikita mo sa larawan, ang gumaganang direktoryo ay talagang nabago!

# Suriing muli ang gumaganang direktoryo

# binago na ba?

cwd= ikaw.getcwd()

mag-print('Ang bagong direktoryo sa pagtatrabaho ay% s'% cwd)

Ang pagbabago ng mga direktoryo sa pagtatrabaho ay isang madaling gawain at tumatagal ngunit isang pamamaraan - ang pamamaraan ng chdir (path). Gayunpaman, nakasalalay sa kung ikaw ay nasa isang makina ng Windows o isang makina ng Linux, dapat kang mag-ingat tungkol sa kung paano mo nai-input ang landas bilang isang string. Kung maling nai-input, maaari itong magtapon ng isang error!

Maligayang Coding!