Создание папки с изменением имени папки под Ubuntu в проекте Django - PullRequest
0 голосов
/ 17 мая 2018

У меня есть этот код в моем проекте:

name = "some-name"
myDir = os.path.join(BASE_DIR, r'first_scrapy\spiders\tmp\{}'.format(name))

Я занимаюсь разработкой на Windows, и это работает - она ​​создает папку с name, который я установил.Но когда я развертываю этот код на Ubuntu 16.04 - этот код создает папки с именами, такими как first_scrapy\spiders\tmp\parfums-promo - путь к папке становится именем папки.
Как можно избежать этого?

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

Пути на основе Unix

В системах на основе Unix каталоги в пути обычно разделяются косой чертой (/) . Таким образом, мы можем просто переписать его так:

# Unix-based operating systems
name = "some-name"
myDir = os.path.join(BASE_DIR, <b>'first_scrapy/spiders/tmp/{}'</b>.format(name))

Независимое от операционной системы решение

Если вы хотите написать приложение, которое работает в разных операционных системах, вы можете использовать os.path.join. Например:

# works on "all" operating systems (well, those suported by the os module)
name = "some-name"
myDir = <b>os.path.join(BASE_DIR, 'first_scrapy', 'spiders', 'tmp', name)</b>

Обеспечение функциональности в различных операционных системах фактически является одной из основных задач, которые должен выполнять модуль os.

0 голосов
/ 17 мая 2018

Это отличный пример того, когда использовать os.path.join() для системных путей - в Windows \ разделяет каталоги.Ubuntu использует /.

os.path.join() выбирает правильный, так что вам не нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...