请大家都是python的初学者,并试图创建一个简单的待办事项列表程序,但现在被困在建立目录的时候。我将张贴下面的所有建议代码,以帮助和使它更好是欢迎的。
#!/usr/bin/env python3
def_directory = "~/Documents/"
def fi_le():
x = int(input("Enter The Length of Your To-Do-List: "))
#this next line of codes should generate the number of list you want
xf = list(range(1, (x + 1)))
#This next liine asks for the To-do list name
import os.path
directory = def_directory
namer = input("Enter File Name: ")
file_name = namer + ".txt"
file_path = os.path.join(directory, file_name)
if not os.path.isdir(directory):
os.mkdir(directory)
f = open(file_path, "w+")
#This next line of code takes in user To-Do-List
for i in xf:
l = ("=>" + str(i) + ". ")
f.close()
def dir_check():
print("\n")
print("*NOTE: PLEASE NOTE YOUR DEFAULT DIR FOR SAVED FILE IS THE 'DOCUMENTS FOLDER'")
print("IF YOU WANT TO CHANGE DIR ENTER 'C' TO PROCEED ELSE ENTER 'D' TO USE DEFAULT FOLDER")
print("\n")
ask_user = input("Do you want to Proceed with DEFAULT FOLDER: ").upper()
if ask_user == "D":
fi_le()
elif ask_user == "C":
user_folder_name = ("~/" + input("Specify Folder Name: "))
def_directory = user_folder_name
fi_le()
else:
print("Please Enter 'D' Or 'C' to Continue")
dir_check()
dir_check()
print("\n" * 5)
print("===============> End <===============")发布于 2020-08-20 22:29:20
有许多问题
例如:在Unix系统中:
def_directory = "/Users/PycharmProjects/StackOverFlow-pip/“
实际上,
write
对于在xf中的i:l= (“=>”+ str(i) + ")。f.write(l)
完全修正的守则:
def_directory = "/Users/PycharmProjects/StackOverFlow-pip/"
def fi_le():
x = int(input("Enter The Length of Your To-Do-List: "))
#this next line of codes should generate the number of list you want
xf = list(range(1, (x + 1)))
#This next liine asks for the To-do list name
import os.path
directory = def_directory
namer = input("Enter File Name: ")
file_name = namer + ".txt"
file_path = os.path.join(directory, file_name)
if not os.path.isdir(directory):
os.mkdir(directory)
f = open(file_path, "w+")
#This next line of code takes in user To-Do-List
for i in xf:
u = input("Enter the value")
f.write(("=>" + str(i) + ". " + u))
f.close()
def dir_check():
print("\n")
print("*NOTE: PLEASE NOTE YOUR DEFAULT DIR FOR SAVED FILE IS THE 'DOCUMENTS FOLDER'")
print("IF YOU WANT TO CHANGE DIR ENTER 'C' TO PROCEED ELSE ENTER 'D' TO USE DEFAULT FOLDER")
print("\n")
ask_user = input("Do you want to Proceed with DEFAULT FOLDER: ").upper()
if ask_user == "D":
fi_le()
elif ask_user == "C":
user_folder_name = ("~/" + input("Specify Folder Name: "))
def_directory = user_folder_name
fi_le()
else:
print("Please Enter 'D' Or 'C' to Continue")
dir_check()
dir_check()
print("\n" * 5)
print("===============> End <===============")输出:
=>1. Eat Hamburger=>2. Eat Cheeseburger发布于 2020-08-20 22:23:52
可能的问题是中间目录不存在。如果是这样的话,使用os.makedirs而不是os.mkdir。
参见这里的文档:https://docs.python.org/3/library/os.html#os.makedirs
发布于 2020-08-20 22:32:53
除了Ahmet之外,您不应该在文件系统上创建目录之前执行这种检查:
if not os.path.isdir(directory):
os.mkdir(directory)相反,您应该尝试直接创建它,并管理异常:
try:
os.mkdirs(directory)
except FileExistsError:
# do something https://stackoverflow.com/questions/63513823
复制相似问题