วิธีการเปลี่ยนไดเร็กทอรีการทำงานใน Python

How Change Working Directory Python



ไดเร็กทอรีการทำงานคือไดเร็กทอรีปัจจุบันที่เรากำลังทำงานและจากที่ที่สคริปต์ทำงาน ภายในไดเร็กทอรีนี้ เราสามารถเข้าถึงไฟล์ต่างๆ ได้ (ไฟล์ที่อยู่ในไดเร็กทอรีนี้) อย่างไรก็ตาม บางครั้งเราจำเป็นต้องเปลี่ยนไดเร็กทอรีและกลับไปกลับมาระหว่างไฟล์และโฟลเดอร์ ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีเปลี่ยนไดเร็กทอรีการทำงานใน Python

OS MODULE

ก่อนอื่น เพื่อให้บรรลุสิ่งนี้ เราจะต้องมีโมดูลระบบปฏิบัติการใน Python เนื่องจากติดตั้งมาล่วงหน้าจึงไม่จำเป็นต้องติดตั้งอะไรเลย โมดูล OS มักใช้ใน Python เพื่อโต้ตอบ จัดการ และแก้ไขไฟล์และโฟลเดอร์ในระบบ ตัวอย่างเช่น เราสามารถสร้าง/ลบไดเร็กทอรี, เปลี่ยนไดเร็กทอรีการทำงาน, ไฟล์แนะนำ, ตรวจสอบว่ามีไฟล์อยู่หรือไม่ ฯลฯ... จำเป็นต้องพูดว่ามันเป็นโมดูลที่มีประโยชน์มาก







รับไดเร็กทอรีการทำงานปัจจุบัน

ในการรับไดเร็กทอรีการทำงานปัจจุบัน เราใช้ getcwd() วิธีการ จากโมดูลระบบปฏิบัติการ โปรดทราบว่าที่นี่ไม่มีการโต้แย้งใดๆ ในกรณีของฉัน ผลลัพธ์คือ /home/kalyani/PycharmProjects/pythonProject1 บนเครื่อง Ubuntu (ใช้งาน PyCharm) ซึ่งหมายความว่าสคริปต์หลัก - main.py - อยู่ในโฟลเดอร์นี้ (pythonProject1) และอย่าลืมว่า ไดเร็กทอรีการทำงาน อันดับแรกคือโฟลเดอร์!



นำเข้า คุณ

# รับไดเรกทอรีการทำงานปัจจุบัน

current_directory= คุณ.getcwd()

พิมพ์('ไดเรกทอรีการทำงานปัจจุบันของคุณคือ %s'% current_directory)



การเปลี่ยนไดเร็กทอรีการทำงานปัจจุบัน

การเปลี่ยนไดเร็กทอรีการทำงานของคุณทำได้ง่ายด้วยเมธอด chdir() ซึ่งรับอาร์กิวเมนต์เพียงตัวเดียว นั่นคือพาธไปยังตำแหน่งใหม่เป็นสตริง





นำเข้า คุณ

# รับไดเรกทอรีการทำงานปัจจุบัน

current_directory= คุณ.getcwd()

พิมพ์('ไดเรกทอรีการทำงานปัจจุบันของคุณคือ %s'% current_directory)

สิ่งแรกที่ต้องทำคือตั้งค่าพาธใหม่ไปยังไดเร็กทอรีการทำงาน บน Ubuntu สิ่งนี้ตรงไปตรงมามาก!

#มาตั้งค่าไดเร็กทอรีใหม่กันเถอะ

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

บน Windows คุณต้องใช้แบ็กสแลชคู่เพื่อกำหนดไดเร็กทอรี



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

ต่อไป เรากำหนดประโยคยกเว้น หากมีเส้นทางอยู่ เราจะใช้วิธี chdir() เพื่อเปลี่ยนไดเร็กทอรีการทำงานเป็นไดเร็กทอรีการทำงานใหม่ หากพาธไม่ใช่ไดเร็กทอรี มันจะส่งข้อผิดพลาด!

ลอง:

คุณ.chdir(new_working_directory)

พิมพ์('ไดเร็กทอรีการทำงานมีการเปลี่ยนแปลง!')

พิมพ์('WD: %s '%คุณ.getcwd())


ยกเว้นNotADirectoryError:

พิมพ์('คุณยังไม่ได้เลือกไดเรกทอรี')


ยกเว้นFileNotFoundError:

พิมพ์('ไม่พบโฟลเดอร์ เส้นทางไม่ถูกต้อง')


ยกเว้นข้อผิดพลาดในการอนุญาต:

พิมพ์('คุณไม่มีสิทธิ์เข้าถึงโฟลเดอร์/ไฟล์นี้')

รหัสเต็มจะมีลักษณะดังนี้:

นำเข้า คุณ

# รับไดเรกทอรีการทำงานปัจจุบัน

current_directory= คุณ.getcwd()

พิมพ์('ไดเรกทอรีการทำงานปัจจุบันของคุณคือ %s'% current_directory)

#มาตั้งค่าไดเร็กทอรีใหม่กันเถอะ

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

new_working_directory=NS'ค: ยูให้บริการNSเคยNSesktopNSythonDirectory'

ลอง:

คุณ.chdir(new_working_directory)

พิมพ์('ไดเร็กทอรีการทำงานมีการเปลี่ยนแปลง!')

พิมพ์('WD: %s '%คุณ.getcwd())


ยกเว้นNotADirectoryError:

พิมพ์('คุณยังไม่ได้เลือกไดเรกทอรี')


ยกเว้นFileNotFoundError:

พิมพ์('ไม่พบโฟลเดอร์ เส้นทางไม่ถูกต้อง')


ยกเว้นข้อผิดพลาดในการอนุญาต:

พิมพ์('คุณไม่มีสิทธิ์เข้าถึงโฟลเดอร์/ไฟล์นี้')

อันที่จริง ความผิดพลาดอาจก่อให้เกิดข้อยกเว้นหลายประเภท:

ผม. NotADirectoryError:

สมมติว่าสำหรับตัวอย่างที่ฉันเขียนโค้ดต่อไปนี้สำหรับพาธหรือไดเร็กทอรีการทำงานใหม่:

new_working_directory= 'ค:\ผู้ใช้\ไม่เคย\เดสก์ทอป\PythonDirectory\text.txt'

สิ่งที่คุณสามารถสังเกตได้คือฉันกำลังชี้เส้นทางไปยังเอกสารข้อความชื่อ text.txt และอย่างหลังจะโยนข้อผิดพลาดที่เรียกว่า NotADirectoryError กล่าวอีกนัยหนึ่ง เส้นทางของคุณต้องชี้ไปที่ไดเร็กทอรีบางประเภท

ii. FileNotFoundError:

FileNotFoundError ถูกส่งออกมาเมื่อไม่มีเส้นทาง ดังนั้น สมมติว่าฉันไม่มีไดเร็กทอรีชื่อ PythonDirectory บนเดสก์ท็อปของฉัน และฉันตั้งค่าพาธเป็น:

new_working_directory= 'ค: ยูให้บริการNSเคยNSesktopNSythonDirectory'

มันจะโยน FileNotFoundError . ข้อผิดพลาดนี้หมายความว่าไดเร็กทอรีที่เราชี้ไปไม่มีอยู่หรือไม่พบ

สาม. ข้อผิดพลาดในการอนุญาต:

ถึง ข้อผิดพลาดในการอนุญาต จะเพิ่มขึ้นเมื่อผู้ใช้ไม่มีสิทธิ์เพียงพอในการแก้ไขหรือเข้าถึงไดเร็กทอรีที่เลือก

iv. ข้อผิดพลาดทางไวยากรณ์:

ข้อผิดพลาดทางไวยากรณ์เกิดขึ้นเมื่อมีข้อผิดพลาดทางไวยากรณ์ในเส้นทาง บน Windows ถ้าเราเขียนว่า:

new_working_directory= 'ค: ยูให้บริการNSเคยNSesktopNSythonDirectory'

เกิดข้อผิดพลาดทางไวยากรณ์! อย่างไรก็ตาม ข้อผิดพลาดทางไวยากรณ์นั้นจับได้ยากกว่ามาก เนื่องจากต้องมีการประเมิน นำเข้า หรือดำเนินการ ดังนั้น เมื่อเราเขียนบล็อกที่พยายามยกเว้น การตรวจพบข้อผิดพลาดนั้นยากขึ้น

บน Windows เพื่อหลีกเลี่ยงข้อผิดพลาดใดๆ คุณสามารถเขียนพาธด้วยวิธีใดวิธีหนึ่งจากสามวิธีที่แตกต่างกัน เพื่อไม่ให้เกิดข้อผิดพลาด:

วิธีที่ 1: ในวิธีนี้ เราเพิ่ม r ก่อนตั้งค่าสตริง

new_working_directory=NS'ค: ยูให้บริการNSเคยNSesktopNSythonDirectory'

วิธีที่ 2: เราใช้แบ็กสแลชสองครั้ง

new_working_directory= 'ค:\ผู้ใช้\ไม่เคย\เดสก์ทอป\PythonDirectory'

วิธีที่ 3: เราใช้เครื่องหมายทับเดียว

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

โมดูลเส้นทาง

นอกจากนี้เรายังสามารถเปลี่ยนไดเร็กทอรีการทำงานโดยใช้โมดูลพาธ ขั้นแรก ติดตั้งพาธดังนี้ (ฉันได้ให้ลิงก์ไปยังโมดูลด้วย):

pip ติดตั้งเส้นทาง

(https://pypi.องค์กร/โครงการ/เส้นทาง/)

ต่อไปเราเขียน:

จากเส้นทางนำเข้าเส้นทาง

นำเข้า คุณ

ก่อนอื่น ให้ตรวจสอบไดเร็กทอรีการทำงานปัจจุบันโดยใช้โมดูลระบบปฏิบัติการและเมธอด getcwd()

# มาเช็คไดเร็กทอรีการทำงานปัจจุบันกันเถอะ

cwd= คุณ.getcwd()

พิมพ์('ไดเร็กทอรีการทำงานปัจจุบันคือ: %s '% cwd)

พิมพ์('----------------------------------------------------------')

ถัดไป กำหนดเส้นทางไปยังไดเร็กทอรีการทำงานใหม่ ในกรณีนี้ ฉันได้เลือกที่จะตั้งค่าตัวอย่างบนเครื่อง Windows:

# กำหนดเส้นทางไปยังไดเร็กทอรีการทำงานใหม่

new_path= 'ค:\ผู้ใช้\ไม่เคย\เดสก์ทอป\PythonDirectory'

ใช้ Path() เพื่อเปลี่ยนไดเร็กทอรีการทำงาน Path() รับเพียงหนึ่งอาร์กิวเมนต์ที่นี่: พาธจริงไปยังไดเร็กทอรีการทำงานใหม่ และใช้วิธี chdir() เพื่อทำงานให้สำเร็จ

#เปลี่ยนไดเร็กทอรีการทำงาน

เส้นทาง(new_path).chdir()

ตรวจสอบอีกครั้งว่าไดเร็กทอรีการทำงานมีการเปลี่ยนแปลงหรือไม่ และอย่างที่คุณเห็นในภาพ ไดเร็กทอรีการทำงานก็เปลี่ยนไปแล้ว!

# ตรวจสอบไดเรกทอรีการทำงานอีกครั้ง

#เปลี่ยนแล้ว?

cwd= คุณ.getcwd()

พิมพ์('ไดเร็กทอรีการทำงานใหม่คือ %s '% cwd)

การเปลี่ยนไดเร็กทอรีการทำงานเป็นเรื่องง่ายและใช้เวลาเพียงวิธีเดียว – วิธี chdir(เส้นทาง) อย่างไรก็ตาม ขึ้นอยู่กับว่าคุณใช้เครื่อง Windows หรือเครื่อง Linux คุณต้องระมัดระวังเกี่ยวกับวิธีการป้อนเส้นทางเป็นสตริง หากป้อนผิด อาจเกิดข้อผิดพลาดได้!

มีความสุขในการเข้ารหัส!