创建目录和文件 - 未按预期工作(pathlib、.mkdir、.touch)

Creating Directories and Files - Not working as expected (pathlib, .mkdir, .touch)

我正在尝试从 Python 中的列表创建一些目录和文件。

我对我的 for 循环的期望是它会检查列表中是否存在路径,确定它是否是文件路径。如果是这样,请创建任何必要的和不存在的目录,然后创建文件。如果路径指向不存在的目录,则创建它。 如果路径已经存在,无论它指向目录还是​​文件,都打印一条消息,说明不需要进一步的操作。当我 运行 我的代码时,只有项目 [0] 和 [1] 是从路径列表中创建的。 我究竟做错了什么? - 在此先感谢您的反馈!

paths = [
    directory / "test1.py",
    directory / "test2.py",
    directory / "FOLDERA" / "test3.py",
    directory / "FOLDERA" / "FOLDERB" / "image1.jpg",
    directory / "FOLDERA" / "FOLDERB" / "image2.jpg",
    ]



 for path in paths:
    if path.exists() == False:
        if path.is_file() == True:
            path.parent.mkdir()
            path.touch()
        if path.is_dir() == True:
            path.mkdir(parent=True)
    if path.exists() == True:
        print(f"No Action {path} Already Exists!")

逻辑失败是因为 is_file() 和 is_dir() 的路径检查,因为两者在开始时都是假的。

for path in paths:
    print("path is ", path)
    if path.exists() == False:
        if path.is_file() == True: #--- Since the file is not there so is_file() will return False 
            path.parent.mkdir()
            path.touch()
        elif path.is_dir() == True: #--- Since the directory is not there is_dir() will return False
            path.mkdir(parent=True)
    if path.exists() == True:
        print(f"No Action {path} Already Exists!")

如果您希望检查特定文件类型的条件,请改为尝试以下逻辑并在 if 块中包含自定义逻辑。

for path in paths:
    print("path is ", path)
    if path.exists() == False:
        if "." in str(path) and path.is_file()==False : #---Assuming it is a file if it contains .  
            # Check if parent exists
            if not path.parent.exists(): 
                path.parent.mkdir()
            path.touch()
        elif path.is_dir()==False:
            if not path.parent.exists(): 
                path.parent.mkdir()
            path.mkdir(parent=True)

    if path.exists() == True:
        print(f"No Action {path} Already Exists!")