【问题标题】:How to create new folder? [duplicate]如何新建文件夹? [复制]
【发布时间】:2010-11-19 10:51:13
【问题描述】:

我想把我的程序的输出信息放到一个文件夹中。如果给定文件夹不存在,则程序应创建一个新文件夹,其文件夹名称与程序中给出的文件夹名称相同。这可能吗?如果是,请告诉我怎么做。

假设我给了"C:\Program Files\alex" 和alex 之类的文件夹路径不存在,那么程序应该创建alex 文件夹并将输出信息放在alex 文件夹中。

【问题讨论】:

  • 当您查看os 模块时,您发现了什么?有什么好用的吗?你试过什么代码?有什么事吗?

标签: python mkdir


【解决方案1】:

你试过 os.mkdir 吗?

你也可以试试这个小代码sn-p:

mypath = ...
if not os.path.isdir(mypath):
   os.makedirs(mypath)

makedirs 会根据需要创建多级目录。

【讨论】:

    【解决方案2】:

    您可以使用os.makedirs()创建文件夹
    并使用os.path.exists() 来查看它是否已经存在:

    newpath = r'C:\Program Files\arbitrary' 
    if not os.path.exists(newpath):
        os.makedirs(newpath)
    

    如果您正在尝试制作安装程序:Windows Installer 为您做了很多工作。

    【讨论】:

    • 这将失败,因为您在调用 os.makedirs 时没有使用双反斜杠。
    • 我快要死了:newpath = r'C:\Program Files\alex';如果不是 os.path.exists(newpath): os.makedirs(newpath)
    • 如果你想与 Windows 以外的东西兼容,请使用 os.path.join('dir','other-dir') 而不是 dir\other-dir。
    • 有人能解释一下为什么 os.path.join('dir','other-dir') 会更兼容其他系统吗?因为斜杠/反斜杠?
    • 因为 os.path 函数使用 python 安装的本地规则运行路径字符串的脚本。在所有情况下使用 os.path.join 可确保您的路径将针对正在运行脚本的平台正确形成。
    【解决方案3】:

    您可能需要os.makedirs,因为它也会在需要时创建中间目录。

    import os
    
    #dir is not keyword
    def makemydir(whatever):
      try:
        os.makedirs(whatever)
      except OSError:
        pass
      # let exception propagate if we just can't
      # cd into the specified directory
      os.chdir(whatever)
    

    【讨论】:

    • whatever 是路径吗?
    • @mLstudent33 是字符串。我建议至少记录错误或打印语句,以便我们知道有什么问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-23
    • 2021-10-15
    • 1970-01-01
    • 2012-10-14
    相关资源
    最近更新 更多