ใช้งานได้ดี:
os.path.join(dir_name, base_filename + "." + filename_suffix)
โปรดทราบว่าos.path.join()
มีอยู่เนื่องจากระบบปฏิบัติการที่แตกต่างกันใช้ตัวคั่นเส้นทางที่แตกต่างกัน มันราบรื่นกว่าความแตกต่างดังกล่าวดังนั้นโค้ดข้ามแพลตฟอร์มไม่จำเป็นต้องยุ่งเหยิงกับกรณีพิเศษสำหรับแต่ละระบบปฏิบัติการ ไม่จำเป็นต้องทำสิ่งนี้สำหรับชื่อไฟล์ "ส่วนขยาย" (ดูเชิงอรรถ) เนื่องจากไฟล์เหล่านี้จะเชื่อมต่อกับส่วนที่เหลือของชื่อด้วยอักขระจุดในทุกระบบปฏิบัติการ
หากใช้ฟังก์ชั่นอยู่แล้วจะทำให้คุณรู้สึกดีขึ้น (และคุณชอบทำให้โค้ดของคุณยุ่งเหยิงโดยไม่จำเป็น) คุณสามารถทำได้ดังนี้:
os.path.join(dir_name, '.'.join((base_filename, filename_suffix)))
หากคุณต้องการรักษาความสะอาดโค้ดของคุณเพียงแค่ใส่จุดในคำต่อท้าย:
suffix = '.pdf'
os.path.join(dir_name, base_filename + suffix)
(วิธีนี้ยังเกิดขึ้นเพื่อให้เข้ากันได้กับอนุสัญญาต่อท้ายในpathlibซึ่งได้รับการแนะนำใน python 3.4)
เชิงอรรถ: ไม่มีสิ่งเช่นชื่อไฟล์ "นามสกุล" บนระบบปฏิบัติการที่ไม่ใช่ Micorsoft การปรากฏตัวบน Windows มาจาก MS-DOS และ FAT ซึ่งยืมมาจาก CP / M ซึ่งตายมานานหลายทศวรรษ จุดบวกสามตัวอักษรที่พวกเราหลายคนคุ้นเคยกับการมองเห็นเป็นเพียงส่วนหนึ่งของชื่อไฟล์ในระบบปฏิบัติการสมัยใหม่อื่น ๆ ที่ไม่มีความหมายในตัว
.
ทำงาน สำหรับอันนี้สามารถos.extsep
ใช้ได้