Điều này hoạt động tốt:
os.path.join(dir_name, base_filename + "." + filename_suffix)
Hãy nhớ rằng os.path.join()
chỉ tồn tại vì các hệ điều hành khác nhau sử dụng các ký tự phân tách đường dẫn khác nhau. Nó làm dịu đi sự khác biệt đó để mã đa nền tảng không phải lộn xộn với các trường hợp đặc biệt cho mỗi HĐH. Không cần thực hiện việc này đối với "phần mở rộng" của tên tệp (xem chú thích) vì chúng luôn được kết nối với phần còn lại của tên bằng ký tự dấu chấm, trên mọi HĐH.
Nếu việc sử dụng một hàm dù sao cũng khiến bạn cảm thấy tốt hơn (và bạn muốn làm phức tạp mã của mình một cách không cần thiết), bạn có thể làm điều này:
os.path.join(dir_name, '.'.join((base_filename, filename_suffix)))
Nếu bạn muốn giữ mã của mình sạch sẽ, chỉ cần bao gồm dấu chấm trong hậu tố:
suffix = '.pdf'
os.path.join(dir_name, base_filename + suffix)
(Cách tiếp cận này cũng tương thích với các quy ước hậu tố trong pathlib , được giới thiệu trong python 3.4.)
Lưu ý: Không có tên gọi là "phần mở rộng" trên các hệ điều hành không phải là Micorsoft. Sự hiện diện của nó trên Windows đến từ MS-DOS và FAT, vốn đã mượn nó từ CP / M, đã chết trong nhiều thập kỷ. Dấu chấm cộng ba chữ cái mà nhiều người trong chúng ta đã quen nhìn thấy chỉ là một phần của tên tệp trên mọi hệ điều hành hiện đại khác, nơi nó không có nghĩa tích hợp.
.
. Đối với điều này có thể sử dụngos.extsep
.