我陷入了错误"在我的文件夹创建期间 首先,这是我正在使用的代码:
import os
import errno
import subprocess
try:
folder = os.makedirs(os.path.expanduser('~\\Desktop\\FOLDER'))
except OSError as e:
if e.errno != errno.EEXIST:
raise
print(os.path.isdir('~\\Desktop\\FOLDER'), '- FOLDER CREATED')
因此,代码执行以下操作:
使用os.makedirs()
它会在桌面上创建一个新文件夹。我想创建一个使用跨平台路径的文件夹,所以我使用~
符号
使用print()
我想确认该文件夹确实存在,该目录是真实的。输出结果为True
或False
。
问题是:如果我在~
中使用print()
符号,则输出为False
。如果我将完整路径放到文件夹中(例如:os.path.isdir('C:\\Users\\Bob\\Desktop\\FOLDER')
,则输出为True
。
为什么会这样?即使我有一个False输出,真的会创建该文件夹吗?
答案 0 :(得分:2)
在调用isdir:
时,您只是缺少expanduser
方法
print(os.path.isdir(os.path.expanduser('~\\Desktop\\FOLDER')), '- FOLDER CREATED')
你也不需要在最后检查。因为如果没有异常,您可以确保创建成功。
这是一个更清洁的实现:
try:
dirpath = os.path.expanduser('~\\Desktop\\FOLDER')
os.makedirs(dirpath)
print dirpath, "creation successful"
except OSError as e:
print dirpath, "creation failed"
if e.errno != errno.EEXIST:
raise