อะไรคือความแตกต่างระหว่างos.path.basename()และos.path.dirname()?
ฉันค้นหาคำตอบและอ่านลิงก์บางส่วนแล้ว แต่ไม่เข้าใจ ใครช่วยอธิบายง่ายๆ
อะไรคือความแตกต่างระหว่างos.path.basename()และos.path.dirname()?
ฉันค้นหาคำตอบและอ่านลิงก์บางส่วนแล้ว แต่ไม่เข้าใจ ใครช่วยอธิบายง่ายๆ
คำตอบ:
ฟังก์ชันทั้งสองใช้os.path.split(path)ฟังก์ชันเพื่อแยกชื่อพา ธpathออกเป็นคู่ (head, tail).
os.path.dirname(path)ฟังก์ชันส่งกลับหัวของเส้นทาง
เช่น: dirname ของ'/foo/bar/item'is '/foo/bar'.
os.path.basename(path)ฟังก์ชันส่งกลับหางของเส้นทาง
เช่น: ชื่อฐานของ'/foo/bar/item'ผลตอบแทน'item'
จาก: http://docs.python.org/2/library/os.path.html#os.path.basename
os.path.basename(os.path.dirname(path))
'foo.bar'และ os.path.dirname (file_name) จะส่งคืนสตริงว่าง: ''.
เพื่อสรุปสิ่งที่ Breno กล่าวถึงข้างต้น
สมมติว่าคุณมีตัวแปรที่มีเส้นทางไปยังไฟล์
path = '/home/User/Desktop/myfile.py'
os.path.basename(path) ส่งคืนสตริง 'myfile.py'
และ
os.path.dirname(path)ส่งคืนสตริง'/home/User/Desktop'(โดยไม่มีเครื่องหมายทับ '/')
ฟังก์ชันเหล่านี้ใช้เมื่อคุณต้องได้รับชื่อไฟล์ / ชื่อไดเร็กทอรีที่กำหนดชื่อพา ธ แบบเต็ม
ในกรณีที่เส้นทางของไฟล์เป็นเพียงชื่อไฟล์ (เช่นแทนที่จะเป็นpath = '/home/User/Desktop/myfile.py'คุณมีmyfile.py) ให้os.path.dirname(path)ส่งคืนสตริงว่าง
itemด้วยitem/ซึ่งเป็นไดเรกทอรีแล้วผลตอบแทนos.path.split('foo/bar/item/')('foo/bar/item', '')