วิธีรับไดเร็กทอรีการทำงานปัจจุบันใน Python

How Get Current Working Directory Python



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

ตัวอย่างที่ 1: การใช้โมดูล pathlib เพื่อรับ Current Working Directory

คลาสพาธของ โมดูล pathlib ใช้เพื่ออ่านไดเร็กทอรีการทำงานปัจจุบันของสคริปต์ดำเนินการ สร้างสคริปต์หลามด้วยรหัสต่อไปนี้เพื่ออ่านและพิมพ์ไดเร็กทอรีการทำงานปัจจุบันโดยใช้โมดูล pathlib NS cwd() วิธีการ ของคลาส Path ใช้เพื่อพิมพ์ไดเร็กทอรีการทำงานปัจจุบันจากตำแหน่งที่สคริปต์กำลังทำงาน







# นำเข้าเส้นทางจากโมดูล pathlib

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

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

current_working_directory=เส้นทาง.cwd()

# พิมพ์ตำแหน่งของไดเร็กทอรีการทำงานปัจจุบัน

พิมพ์('ตำแหน่งของไดเร็กทอรีการทำงานปัจจุบันคือ:')

พิมพ์(current_working_directory)

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันสคริปต์ข้างต้น ที่นี่ เส้นทางของไดเร็กทอรีการทำงานปัจจุบันที่ไม่มีชื่อสคริปต์ได้แสดงในเอาต์พุต





ตัวอย่างที่ 2: การใช้ normpath() และ abspath() เพื่อรับ Current Working Directory

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





# นำเข้าโมดูลระบบปฏิบัติการ

นำเข้า คุณ

# พิมพ์ไดเร็กทอรีการทำงานปัจจุบันโดยใช้ฟังก์ชัน normpath()

พิมพ์('ไดเร็กทอรีการทำงานปัจจุบัน (โดยใช้ normpath()) คือ:')

พิมพ์(คุณ.เส้นทาง.dirname(คุณ.เส้นทาง.บรรทัดฐาน(__ไฟล์__)))

# พิมพ์ไดเร็กทอรีการทำงานปัจจุบันโดยใช้ฟังก์ชัน abspath()

พิมพ์('NSไดเร็กทอรีการทำงานปัจจุบัน (โดยใช้ abspath()) คือ:')

พิมพ์(คุณ.เส้นทาง.แอบสพาธ('.'))

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันสคริปต์ข้างต้น ที่นี่ เส้นทางของไดเร็กทอรีการทำงานปัจจุบันที่ไม่มีชื่อสคริปต์ได้แสดงในเอาต์พุต



ตัวอย่างที่ 3: การใช้ realpath() เพื่อรับ Current Working Directory

NS เส้นทางจริง () เป็นอีกวิธีหนึ่งในการดึงไดเร็กทอรีการทำงานปัจจุบัน สร้างไฟล์ python ด้วยสคริปต์ต่อไปนี้เพื่อพิมพ์ไดเร็กทอรีการทำงานปัจจุบันด้วยชื่อสคริปต์โดยใช้ realpath() วิธีการ . ในสคริปต์มันต้องใช้ __ไฟล์__ เป็นค่าอาร์กิวเมนต์ที่มีชื่อพาธของไฟล์ที่นำเข้าโมดูลระบบปฏิบัติการ

# นำเข้าโมดูลระบบปฏิบัติการ

นำเข้า คุณ

# อ่านไดเร็กทอรีการทำงานปัจจุบันโดยใช้ฟังก์ชัน realpath()

real_path= คุณ.เส้นทาง.realpath(__ไฟล์__)

# พิมพ์ไดเร็กทอรีการทำงานปัจจุบันด้วยชื่อสคริปต์

พิมพ์('NSไดเร็กทอรีการทำงานปัจจุบันที่มีชื่อสคริปต์คือ:')

พิมพ์(real_path)

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันสคริปต์ข้างต้น ที่นี่ เส้นทางของไดเร็กทอรีการทำงานปัจจุบันที่มีชื่อสคริปต์ได้แสดงในเอาต์พุต

ตัวอย่างที่ 4: การใช้ getcwd() เพื่อรับ Current Working Directory

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

# นำเข้าโมดูลระบบปฏิบัติการ

นำเข้า คุณ

# พิมพ์ไดเร็กทอรีการทำงานปัจจุบันโดยใช้ฟังก์ชัน getcwd()

พิมพ์('ไดเร็กทอรีการทำงานปัจจุบันคือ:NS', คุณ.getcwd())

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

คุณ.chdir('/ ฯลฯ / จดหมาย')

# พิมพ์ไดเร็กทอรีการทำงานปัจจุบันหลังจากเปลี่ยน

พิมพ์('NSไดเร็กทอรีการทำงานปัจจุบันหลังการเปลี่ยนแปลงคือ:NS', คุณ.getcwd())

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันสคริปต์ข้างต้น ที่นี่ มีการพิมพ์เส้นทางไดเรกทอรีการทำงานปัจจุบันที่ไม่มีชื่อสคริปต์ก่อนที่จะเปลี่ยนไดเรกทอรี ถัดไป มีการพิมพ์เส้นทางไดเรกทอรีที่เปลี่ยนแปลง

ตัวอย่างที่ 5: การใช้ getcwd() โดยลองยกเว้นเพื่อรับ Current Working Directory

สร้างไฟล์ python ด้วยสคริปต์ต่อไปนี้เพื่อเปลี่ยนไดเร็กทอรีการทำงานปัจจุบันตามค่าอินพุตและจัดการข้อผิดพลาดประเภทต่างๆ ข้อผิดพลาดสามประเภทสามารถจัดการได้โดยการรันสคริปต์ NS ข้อผิดพลาด FileNotFoundError จะถูกสร้างขึ้นหากไม่มีเส้นทางที่นำมาจากอินพุต NS ข้อผิดพลาด NotADirectoryError จะถูกสร้างขึ้นหากเส้นทางที่นำมาจากอินพุตไม่ใช่ไดเร็กทอรี NS ข้อผิดพลาดในการอนุญาตข้อผิดพลาด จะถูกสร้างขึ้นหากเส้นทางที่นำมาจากอินพุตไม่สามารถเข้าถึงได้

# นำเข้าโมดูลระบบปฏิบัติการ

นำเข้า คุณ

# ป้อนเส้นทางของไดเรกทอรี

cwd= ป้อนข้อมูล('ป้อนเส้นทางของไดเรกทอรีการทำงานปัจจุบัน:NS')


ลอง:

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

คุณ.chdir(cwd)

# พิมพ์ไดเร็กทอรีการทำงานปัจจุบันโดยใช้ฟังก์ชัน getcwd()

พิมพ์('ไดเร็กทอรีการทำงานปัจจุบันคือ:NS', คุณ.getcwd())

# เกิดข้อผิดพลาดหากไม่มีไดเร็กทอรี

ยกเว้นFileNotFoundError:

พิมพ์('ไม่มีไดเรกทอรี')

# เพิ่มข้อผิดพลาดหากเส้นทางอินพุตไม่ใช่ไดเร็กทอรี

ยกเว้นNotADirectoryError:

พิมพ์('%s ไม่ใช่ไดเรกทอรี'%(cwd))

# เพิ่มข้อผิดพลาดหากไดเรกทอรีไม่สามารถเข้าถึงได้

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

พิมพ์('การอนุญาตปฏิเสธที่จะเปลี่ยนไดเร็กทอรี')

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันสคริปต์ข้างต้น หากมีเส้นทางอยู่ ที่นี่ มีเส้นทางอินพุตที่รับ และไดเร็กทอรีการทำงานที่เปลี่ยนแปลงได้พิมพ์ในเอาต์พุต


ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันสคริปต์ด้านบนหากไม่มีเส้นทาง


ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันสคริปต์ข้างต้น หากไม่สามารถเข้าถึงพาธที่ถ่ายได้

บทสรุป:

การใช้โมดูล pathlib และ os เพื่ออ่านไดเร็กทอรีการทำงานปัจจุบันจะแสดงในบทช่วยสอนนี้โดยใช้ตัวอย่างต่างๆ วิธีการดึงข้อมูลไดเร็กทอรีการทำงานปัจจุบันหลังจากเปลี่ยนไดเร็กทอรีการทำงานปัจจุบันตามอินพุตของผู้ใช้ได้แสดงไว้ในบทช่วยสอนนี้ด้วย