ไดเร็กทอรีการทำงานคือไดเร็กทอรีปัจจุบันที่เรากำลังทำงานและจากที่ที่สคริปต์ทำงาน ภายในไดเร็กทอรีนี้ เราสามารถเข้าถึงไฟล์ต่างๆ ได้ (ไฟล์ที่อยู่ในไดเร็กทอรีนี้) อย่างไรก็ตาม บางครั้งเราจำเป็นต้องเปลี่ยนไดเร็กทอรีและกลับไปกลับมาระหว่างไฟล์และโฟลเดอร์ ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีเปลี่ยนไดเร็กทอรีการทำงานใน 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 คุณต้องระมัดระวังเกี่ยวกับวิธีการป้อนเส้นทางเป็นสตริง หากป้อนผิด อาจเกิดข้อผิดพลาดได้!
มีความสุขในการเข้ารหัส!