Das funktioniert gut:
os.path.join(dir_name, base_filename + "." + filename_suffix)
Beachten Sie, dass dies os.path.join()
nur existiert, weil verschiedene Betriebssysteme unterschiedliche Pfadtrennzeichen verwenden. Dieser Unterschied wird ausgeglichen, sodass plattformübergreifender Code nicht für jedes Betriebssystem mit Sonderfällen überfüllt sein muss. Für Dateinamen "Erweiterungen" (siehe Fußnote) ist dies nicht erforderlich, da sie auf jedem Betriebssystem immer mit einem Punktzeichen mit dem Rest des Namens verbunden sind.
Wenn Sie sich durch die Verwendung einer Funktion trotzdem besser fühlen (und Ihren Code unnötig komplizieren möchten), können Sie dies tun:
os.path.join(dir_name, '.'.join((base_filename, filename_suffix)))
Wenn Sie Ihren Code lieber sauber halten möchten, fügen Sie einfach den Punkt in das Suffix ein:
suffix = '.pdf'
os.path.join(dir_name, base_filename + suffix)
(Dieser Ansatz ist auch mit den Suffix-Konventionen in pathlib kompatibel , die in Python 3.4 eingeführt wurden.)
Fußnote: Unter Nicht-Micorsoft-Betriebssystemen gibt es keinen Dateinamen "Erweiterung". Seine Präsenz unter Windows kommt von MS-DOS und FAT, die es von CP / M ausgeliehen haben, das seit Jahrzehnten tot ist. Dieser Punkt plus drei Buchstaben, den viele von uns gewohnt sind, zu sehen, ist nur ein Teil des Dateinamens auf jedem anderen modernen Betriebssystem, wo er keine eingebaute Bedeutung hat.
.
. Hierfür kann man verwendenos.extsep
.