【问题标题】:Python OSError while attempting os.mkdir尝试 os.mkdir 时出现 Python OSError
【发布时间】:2016-02-05 20:48:51
【问题描述】:
import os
directory=input("Directory: ")
if not os.path.exists(directory):
    os.mkdir(directory)
    os.mkdir(str(directory)+'\steamCMD')
    os.mkdir(str(directory)+'\temporary')

我的代码中的一个 sn-p。在此处显示的最后一行返回 OSError。为什么?与第 5 行完全相同,但第 5 行就像一个魅力。 错误:

    os.mkdir(str(directory)+'\temporary')
OSError: [WinError 123] The filename, directory name, or volume label syntax     is incorrect: 'c:\\testing\temporary'

类似:Python - os.rename() - OSError: [WinError 123] os.mkdir(path) returns OSError when directory does not exist 但是他对我有不同的错误。有人告诉我为什么会这样吗?

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    试试:

    os.mkdir(str(directory) + '\\temporary')
    

    或者

    os.mkdir(str(directory) + r'\temporary')
    

    关于\\或r'\temporary'这两个,here是文档,here是个好问题。


    另外,os.path.join() 是一个不错的选择,因为它在 Windows 上使用 \\ 而在 *nix 上使用 /。例如:

    os.mkdir(os.path.join(directory), 'temporary')
    

    这会在 Windows 上提供 directory\temporary,在 *nix 上提供 directory/temporary。这是一种更清晰、更简单的方法。

    【讨论】:

    • 另外,最好使用os.path.join 来构建路径,而不是仅仅添加文字反斜杠 (Windows) 或斜杠 (Unix/Linux):os.mkdir(os.path.join(directory), 'temporary')。 (记住原始字符串仍然很好,因为您会希望它们与 re 模块一起使用,例如。)
    猜你喜欢
    • 1970-01-01
    • 2018-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-29
    • 2017-01-15
    • 1970-01-01
    • 2021-11-10
    相关资源
    最近更新 更多