首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Makedirs正在创建文件,而不是文件夹

Makedirs正在创建文件,而不是文件夹
EN

Stack Overflow用户
提问于 2019-11-24 14:21:16
回答 3查看 436关注 0票数 0

我有一个问题,当我尝试创建一个文件夹时,它会生成一个文件。具体来说,它出现在variable文件夹中。代码如下,我使用的是python2.7

代码语言:javascript
运行
复制
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")

在我的计算机上,我得到了这个错误

代码语言:javascript
运行
复制
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

我做错了什么?我似乎想不通了。

EN

回答 3

Stack Overflow用户

发布于 2019-11-24 14:45:15

您从不在以下位置创建文件夹

代码语言:javascript
运行
复制
try:
    os.path.exists(folder)
except:
    if not os.path.exists(folder):
        print("Creating Folder for You.")
        os.makedirs(folder)

如果os.path.exists抛出异常,您正在尝试创建文件夹,但它没有,它返回TrueFalse,稍后您在中创建文件

代码语言:javascript
运行
复制
k = open(full, "w")

像这样使用它

代码语言:javascript
运行
复制
folder = raw_input("Enter Output Folder Here: ")

if not os.path.exists(folder):
    print("Creating Folder for You.")
    os.makedirs(folder)
票数 0
EN

Stack Overflow用户

发布于 2019-11-24 14:46:16

我不知道你用这段代码实现了什么,但是我已经对你的代码做了一些修改。我想这会对你有帮助的。

代码语言:javascript
运行
复制
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()
票数 0
EN

Stack Overflow用户

发布于 2019-11-24 14:55:21

问题是当你的代码不存在的时候,你的代码不会创建一个的目录。考虑一下:

代码语言:javascript
运行
复制
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子句中的代码不会被执行。您想要的是创建目录,而不管它是否存在,并忽略该错误:

代码语言:javascript
运行
复制
try:
    os.makedirs(folder)
except OSError:
    pass
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59015181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档