检查 python 的文件夹

check for a folder with python

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

当我使用这个方法时,它给我一个错误,并说文件存在,为什么我不能访问那个文件

我认为你想做的是:

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

os.chdir(path+"micro") 如果路径不存在,这不会 return false。它反而给出了一个错误。另外写 path + "mirco" 也不是一个好习惯。标准方法是使用 os.path.join(path, "micro"),因为它根据 os 上的 os 处理选择“/”或“\”。

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

选项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)

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

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

您的代码不正确,因为正如您从文档中看到的那样 os.chdir 没有 return 任何值,而是用于将当前工作目录更改为给定路径。 Returns None 在所有情况下。由于这个原因,您的代码出错了。

相反,您需要 os.path.exists 方法,如果路径引用现有路径,则 return 为真。 Returns 损坏的符号链接为 False。在某些平台上,如果未授予在请求的文件上执行 os.stat() 的权限,则此函数可能 return False,即使路径实际存在。