Ini berfungsi dengan baik:
os.path.join(dir_name, base_filename + "." + filename_suffix)
Perlu diingat bahwa os.path.join()
ada hanya karena sistem operasi yang berbeda menggunakan karakter pemisah jalur yang berbeda. Ini menghaluskan perbedaan itu sehingga kode lintas-platform tidak harus berantakan dengan kasus khusus untuk setiap OS. Tidak perlu melakukan ini untuk nama file "ekstensi" (lihat catatan kaki) karena mereka selalu terhubung ke sisa nama dengan karakter titik, di setiap OS.
Jika tetap menggunakan fungsi membuat Anda merasa lebih baik (dan Anda suka menyulitkan kode Anda), Anda dapat melakukan ini:
os.path.join(dir_name, '.'.join((base_filename, filename_suffix)))
Jika Anda lebih suka menjaga kode Anda tetap bersih, cukup sertakan titik di akhiran:
suffix = '.pdf'
os.path.join(dir_name, base_filename + suffix)
(Pendekatan ini juga kompatibel dengan konvensi sufiks di pathlib , yang diperkenalkan dengan python 3.4.)
Catatan Kaki: Tidak ada nama "ekstensi" nama file pada sistem operasi non-Micorsoft. Kehadirannya di Windows berasal dari MS-DOS dan FAT, yang meminjamnya dari CP / M, yang telah mati selama beberapa dekade. Dot-plus-tiga-huruf yang biasa kita lihat hanyalah bagian dari nama file di setiap OS modern lainnya, yang tidak memiliki makna bawaan.
.
. Untuk yang satu ini bisa digunakanos.extsep
.