在Django项目的Ubuntu下创建改变foldername的文件夹

时间:2018-05-17 18:21:59

标签: python django ubuntu deployment path

我的项目中有这个代码:

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 :(得分:2)

这是何时使用os.path.join()用于系统路径的一个很好的示例 - 在Windows中,\分隔目录。 Ubuntu使用/

os.path.join()选择正确的,因此您不必这样做。

答案 1 :(得分:1)

基于Unix的路径

在基于Unix的系统中,路径中的目录通常用正斜杠(/分隔。所以我们可以简单地将其重写为:

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

独立于操作系统的解决方案

如果您希望编写适用于不同操作系统的应用程序,则可以使用os.path.join。例如:

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

提供不同操作系统的功能实际上是os模块旨在处理的主要任务之一。