จะรับตัวคั่นตัวแปรสภาพแวดล้อม PATH ใน Python ได้อย่างไร


156

เมื่อต้องมีการรวมหลายไดเรกทอรีเข้าด้วยกันเช่นเดียวกับในพา ธ การค้นหาที่เรียกใช้งานได้จะมีอักขระตัวคั่นที่ขึ้นอยู่กับระบบปฏิบัติการ สำหรับ Windows มันสำหรับลินุกซ์มัน';' ':'Python มีวิธีในการแยกตัวละครตัวไหนออกไหม?

ในการพูดคุยกับคำถามนี้ฉันจะหาเส้นทางของหลามได้อย่างไรโดยใช้ python? มันแนะนำว่าos.sepจะทำ คำตอบที่เป็นความผิดเพราะมันเป็นตัวคั่นสำหรับส่วนประกอบของไดเรกทอรีหรือชื่อไฟล์และเท่ากับหรือ'\\''/'

คำตอบ:


220

219
ถ้าอย่างฉันคุณไม่ได้อ่านเนื้อหาของคำถามนี้และไปตามชื่อคุณจะคิดว่านี่เป็นตัวละครที่แยกองค์ประกอบของเส้นทางของระบบไฟล์ (ฟอร์เวิร์ดสแลชใน Linux และ MacOSX, แบ็กสแลชบน Windows) ไม่ใช่อักขระที่แยกองค์ประกอบของเชลล์PATHที่ใช้ในการค้นหาคำสั่งที่ปฏิบัติการได้ os.sepหรือos.path.sepเป็นสิ่งที่คุณต้องการสำหรับเส้นทางระบบไฟล์
เพอร์รี

71
os.pathsepคือ:หรือ;ในขณะที่os.path.sepเป็น\\ หรือ/- บางครั้งชื่อใน Python ทำให้ฉันรู้สึกแย่มาก นั่น.ทำให้ความแตกต่างใหญ่เกินไป
ArtOfWarfare

1
@Perry ฉันแก้ไขคำถาม หวังว่าการแก้ไขของฉันจะลบล้างความสับสน (ฉันระบุว่าคำถามนี้ถามเกี่ยวกับ "ตัวแปรสภาพแวดล้อม PATH" แทน "เส้นทางของระบบไฟล์")
เทรเวอร์บอยด์สมิ ธ

ดังนั้นจึงมีos.sepและos.path.sep, ซึ่งเท่ากัน, os.pathsepและและos.path.pathsepซึ่งเท่ากัน ทำไมพวกเขาถึงทำเช่นนี้?
BallpointBen


12

ทำให้ชัดเจนมากขึ้นเล็กน้อย (สำหรับมือใหม่หลามอย่างฉัน)

import os
print(os.pathsep)

4

ตกลงดังนั้นมี:

  • os.pathsepนั่นคือ;และซึ่งเป็นตัวคั่นในPATHตัวแปรสภาพแวดล้อม;
  • os.path.sepที่อยู่/ใน Unix / Linux และ\Windows ซึ่งเป็นตัวคั่นระหว่างส่วนประกอบของเส้นทาง

ความคล้ายคลึงกันเป็นแหล่งของความสับสน


คุณยังอ่านคำถามหรือไม่ os.path.sepเป็นคำตอบที่แตกต่างกันคำถาม
Mark Ransom

คุณพูดถูกต้องขอบคุณ! ความสับสนของฉันมาจากความจริงที่ว่าจริง ๆ แล้วฉันกำลังมองหาตัวคั่นเฉพาะระบบ '\' และ '/' (ซึ่งเป็น os.path.sep) ในขณะที่หน้านี้ถูกเสนอเป็นหนึ่งในผลการค้นหา
DVV

1

นี่คือเส้นทางตัวอย่างสำหรับไดเรกทอรีการทำงาน / โฟลเดอร์เฉพาะของคุณ -

 import os
 my = os.path.sep+ "testImages" + os.path.sep + "imageHidden.png"
 print(my)

ผลผลิตสำหรับ Linux-

/home/*******/Desktop/folder/PlayWithPy/src/testImages/imageHidden.png

เอาท์พุทสำหรับ Windows-

C:\\Users\\Administrator\\Desktop\\folder\\tests\\testImages\\imageHidden.png

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.