यह ठीक काम करता है:
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)
(यह दृष्टिकोण पैथलिब में प्रत्यय सम्मेलनों के साथ संगत होने के लिए भी होता है , जिसे अजगर 3.4 में पेश किया गया था।)
फुटनोट: नॉन-माइक्रोफोर्स ऑपरेटिंग सिस्टम पर फ़ाइल नाम "एक्सटेंशन" जैसी कोई चीज नहीं है। विंडोज पर इसकी उपस्थिति एमएस-डॉस और एफएटी से आती है, जिसने इसे सीपी / एम से उधार लिया था, जो दशकों से मृत है। वह डॉट-प्लस-थ्री-लेटर्स, जिन्हें हम में से कई लोग देखने के आदी हैं, हर दूसरे आधुनिक ओएस पर फ़ाइल नाम का एक हिस्सा है, जहाँ इसका कोई अंतर्निहित अर्थ नहीं है।
.
। इसके लिए कोई भी उपयोग कर सकता हैos.extsep
।