【问题标题】:check for a folder with python用python检查文件夹
【发布时间】:2020-01-22 10:18:08
【问题描述】:
if os.chdir(path+"micro")==True:
    os.chdir(path+"micro")
else: 
    os.mkdir(path+"micro")
    os.chdir(path+"micro")

当我使用此方法时,它给了我一个错误并说文件退出为什么我不能访问该文件

【问题讨论】:

标签: python windows mkdir


【解决方案1】:

我认为你想要做的是:

   dir = os.path.join(path, "micro")
   if not os.path.isdir(dir):
       os.mkdir(dir)
   os.chdir(dir)

【讨论】:

    【解决方案2】:

    os.chdir(path+"micro") 如果路径不存在,则不会返回 false。它宁可给出一个错误。写path + "mirco" 也不是一个好习惯。标准方式是使用os.path.join(path, "micro"),因为它会根据运行的操作系统处理选择“/”或“\”。

    所以这些是您可以尝试的一些替代方案。

    备选方案 1:

    dir = os.path.join(path, "micro")
    if not os.path.exists(dir):
        os.mkdir(dir)  
    os.chdir(dir)
    

    备选方案 2:

    dir = os.path.join(path, "micro")
    try:
        os.chdir(dir)
    except:
        os.mkdir(dir)
        os.chdir(dir)
    

    【讨论】:

      【解决方案3】:

      如果我正确理解您的问题,此代码适合您:

      if os.path.exists(path+"micro"):
          os.chdir(path+"micro")
      else: 
          os.mkdir(path+"micro")
          os.chdir(path+"micro")
      

      您的代码不正确,因为您可以从文档中看到 os.chdir 不返回任何值,而是用于将当前工作目录更改为给定路径。在所有情况下都返回 None。因此,您的代码出错了。

      相反,您需要 os.path.exists 方法,如果 path 引用现有路径,则该方法返回 True。对于损坏的符号链接返回 False。在某些平台上,如果未授予对请求的文件执行 os.stat() 的权限,即使路径物理存在,此函数也可能返回 False。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-28
        • 2019-01-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-29
        • 2021-07-09
        相关资源
        最近更新 更多