Python pathlib.Path - как получить независимый от платформы разделитель файлов в виде строки? - PullRequest
1 голос
/ 27 сентября 2019

Я создаю строку формата, которая отличается в зависимости от класса, которая используется для генерации имени файла с помощью универсального метода класса.Я использую модуль Python 3.4+ pathlib.Path для объектно-ориентированного файлового ввода-вывода.

При построении этой строки отсутствует разделитель пути, и вместо того, чтобы просто вставить версию Windows, я хочучтобы добавить независимый от платформы разделитель файлов.

Я искал документы pathlib и отвечал здесь об этом, но все примеры предполагают, что я строю объект Path, а не строку.Функции pathlib добавят правильный разделитель в любые строковые выходные данные, но это фактические пути - так что это не сработает.

Помимо чего-то хакерского, такого как написание строки и ее анализ, чтобы выяснить, что такое разделитель,Есть ли способ напрямую получить текущую, правильную строку разделителя файлов?

Предпочитаю ответ, используя pathlib.Path, а не пакеты os или shutil.

Вот как выглядит код:

В конструкторе:

    self.outputdir = Path('drive:\\dir\\file')
    self.indiv_fileformatstr = str(self.outputdir) + '{}_new.m'

В последнем использованном методе:

    indiv_filename = Path(self.indiv_fileformatstr.format(topic))

Это исключает разделитель файлов

1 Ответ

1 голос
/ 27 сентября 2019

Во-первых, отсутствует точка pathlib, если вы преобразуете в строки, чтобы присоединить имя файла.

Вместо:

self.indiv_fileformatstr = str(self.outputdir) + '{}_new.m'

Обычно вы делаете что-токак:

self.indiv_fileformatpath = self.outputdir / '{}_new.m'
self.indiv_fileformatstr = str(self.indiv_fileformatpath)
...