使用 OS 模块创建目录

Creating directories with OS module

你好,我正在尝试创建一个小工具,它将在根目录中创建子目录

Root Dir(python) And child Dir(DS, WEB, Flask, Learn) stuff like that

一开始我是静态完成的 这是代码

import os

web = "Web"
Ds = "Data-structures"
Learn = "Learn"
tools = "Tools"

list1 = []
var = int(input("Enter number of Dir:- "))
for x in range(0, var):
    Lang = input("Enter Lang:- ")
    list.append(Lang)


for i in list1:
    os.system(
        f'mkdir {i} && cd {i} && mkdir {web} && mkdir {Ds} && mkdir {Learn} && mkdir {tools}')

然后我决定像以前一样通过使用两个列表来动态地执行此操作,但事情进展不顺利这是代码

import os

A = int(input("Enter number of dirs to be in A Specific languge(Ex:1 or 2):- "))
list1 = []
for x in range(0, A):
    B = input("Enter the Dir name(Ex:- DS, Web..etc):- ")
    list.append(B)
print(list)


C = int(input("Enter number of languages to be In the Dir(Ex:1 or 2):- "))
list2 = []
for x in range(0, C):
    D = input("Enter languges Name(Ex:- python,php,Golang):- ")
    list2.append(D)


for i, j in zip(list2, list1):
    os.system(f'mkdir {i} && cd {i} && mkdir {j} && mkdir {j}')
#tried all combination that I know
#for i in range(0,lis1):
#    for j in list2:
#        os.system(f'mkdir {list2} && cd {list2} && {os.mkdir(list1[i])}')

所以我通过使用嵌套的 for 循环或 while 循环做了一些尝试,但我没有得到我所做的答案 在第二个代码中,如果我给它抛出错误,我将无法给出 for k in range(0, A): A subdirectory or file py already exists. 很明显会出现错误,就像我使用 for 循环一次又一次地重新创建相同的内容一样

我想要的是创建Root:-Python child's:-Web, DS..etc

You don't want to use the same code if you know other ways Please Do let me Know

请任何人帮助我

为了提示用户,您可以创建一个小函数,要求用户按顺序输入值。

例如:

def ask_values(prompt, input_msg):
    choices = []
    print(f"{prompt} (press <ENTER> when finished)")
    while True:
        choice = input(input_msg)
        if choice:
            choices.append(choice)
        else:
            return choices

此函数将无限循环,直到用户按下 <ENTER>,然后按下 return 值。

然后您可以使用此功能两次:目录和语言:

directories = ask_values(
    "Enter the directories",
    "Enter the directory name (ex.: DS, Web, etc.): "
)
print("=> directories:", directories)
print()

languages = ask_values(
    "Enter the languages",
    "Enter the language name (ex.: python, php, go, etc.): "
)
print("=> languages:", languages)
print()

然后,您需要遍历目录和语言来创建树结构。 不要忘记在全局变量中指定根目录的完整路径(例如):

注意:在本次演示中,我选择当前工作目录:“.”

解决方案 1:使用 os 模块:

import os

# Root directory of you directory tree
root_dir = os.path.abspath(".")

print("Creating directories...")
for dir_name in directories:
    for lang in languages:
        path = os.path.join(root_dir, dir_name, lang)
        try:
            os.makedirs(path)
        except FileExistsError:
            pass
print("Done.")

解决方案 2:使用 pathlib 模块

import pathlib

# Root directory of you directory tree
root_dir = pathlib.Path(".").absolute()

print("Creating directories...")
for dir_name in directories:
    for lang in languages:
        path = root_dir.joinpath(dir_name, lang)
        path.mkdir(parents=True, exist_ok=True)
print("Done.")