使用 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.")
你好,我正在尝试创建一个小工具,它将在根目录中创建子目录
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.")