[英]Makedirs is creating a file not a folder
我遇到了一个问题,当我尝试创建一个文件夹时,它会创建一个文件。 具体来说,它发生在变量文件夹中。 代码如下,我使用的是python 2.7
import os
i = False
while i != True:
fil = raw_input("Enter Filename Here: ")
i = os.path.exists(fil)
if i == False: print("File does not exist! Try Again.")
folder = raw_input("Enter Output Folder Here: ")
try:
os.path.exists(folder)
except:
if not os.path.exists(folder):
print("Creating Folder for You.")
os.makedirs(folder)
output = raw_input("Enter Chlorophyll-a Output Filename Here: ")
full = os.path.join(folder, output)
if os.path.exists(full):
yesno = raw_input("Output file already exists are you sure you want to overwrite? Yes/No: ")
if yesno == "Yes":
k = open(full, "w")
if yesno == "No":
raise SystemExit("Exiting File Now!")
if not os.path.exists(full):
print ("File Does Not Exist. I Will Make It For You.")
k = open(full, "w")
在我的电脑上我收到这个错误
Traceback (most recent call last):
File "C:/Users/---/.PyCharmCE2019.2/config/scratches/scratch_6.py", line 33, in <module>
k = open(full, "w")
IOError: [Errno 2] No such file or directory
我究竟做错了什么? 我似乎无法弄清楚
你永远不会创建文件夹,在
try:
os.path.exists(folder)
except:
if not os.path.exists(folder):
print("Creating Folder for You.")
os.makedirs(folder)
如果os.path.exists
引发异常,则您正在尝试创建该文件夹,但它没有,它返回True
或False
,然后您在
k = open(full, "w")
像这样使用它
folder = raw_input("Enter Output Folder Here: ")
if not os.path.exists(folder):
print("Creating Folder for You.")
os.makedirs(folder)
我不知道您正在使用此代码实现什么,但我对您的代码进行了一些更改。 我认为这会对你有所帮助。
import os
fil = input("Enter Filename Here: ")
if not os.path.exists(fil):
print("File doesn't exist!")
folder = input("Enter Output Folder Here: ")
if not os.path.exists(folder):
print("Creating folder for you.")
os.makedirs(folder)
output = input("Enter Chlorophyll-a Output Filename Here: ")
full = os.path.join(folder, output)
if os.path.exists(full):
yesno = input("Output file already exists are you sure you want to overwrite? Yes/No: ")
if yesno == "Yes":
k = open(full, "w")
k.close()
if yesno == "No":
raise SystemExit("Exiting File Now!")
else:
print ("File Does Not Exist. I Will Make It For You.")
k = open(full, "w")
k.close()
问题是您的代码在目录不存在时不会创建目录。 考虑:
try:
os.path.exists(folder)
except:
if not os.path.exists(folder):
print("Creating Folder for You.")
os.makedirs(folder)
在 try 块中,您调用os.path.exists(folder)
,但这不会产生任何异常。 这意味着except子句中的代码不会被执行。 您想要的是创建目录,不管它是否存在,并忽略错误:
try:
os.makedirs(folder)
except OSError:
pass
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.