在Windows中使用python创建目录时出错

时间:2017-02-13 16:35:16

标签: python windows python-2.7 directory

我试图在python中创建一个目录,但是现在我使用的是Windows,而且我遇到了一些麻烦。

app.py的代码是:

    # Python Library 
    # -*- coding: UTF-8 -*-

    import os

    def create_directory(server_path, branch):
        if not os.path.exists(rserver_path):
           os.makedirs(rserver_path)
        os.makedirs(server_path + "/" + branch)

但是当我运行代码时:

D:\tools\scripts>python
Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:42:59) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from app import *
>>> create_directory('D:\temp\lixo','ProjectA_CO_4.2.x')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "app.py", line 18, in create_directory
    os.makedirs(newpath)
  File "C:\Python27\lib\os.py", line 150, in makedirs
    makedirs(head, mode)
  File "C:\Python27\lib\os.py", line 157, in makedirs
    mkdir(name, mode)
WindowsError: [Error 123] A sintaxe do nome do arquivo, do nome do diret¾rio ou do r¾tulo do volume estß incorreta: 'D:\temp'

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

你真的通过路径:'D:\temp\lixo'?尝试转义反斜杠,如下所示:'D:\\temp\\lixo'。有关字符串转义的更多信息,请参阅documentation

答案 1 :(得分:0)

对于Windows,您还需要在此处更改斜线方向:

# Python Library 
# -*- coding: UTF-8 -*-

import os

def create_directory(server_path, branch):
    if not os.path.exists(rserver_path):
       os.makedirs(rserver_path)
    os.makedirs(server_path + "\\" + branch) #  escaped backslash

那应该有所帮助。另外,正如@lukeg所说,所有的斜杠都需要转义。即&#39; \&#39;而不是&#39; \&#39;