验证文件夹创建时出错 (Python)
Error when verifying folder creation (Python)
我在创建文件夹的过程中卡在 "error" 中。
首先,这是我使用的代码:
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 输出,该文件夹确实已创建?
您只是在调用 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
我在创建文件夹的过程中卡在 "error" 中。 首先,这是我使用的代码:
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 输出,该文件夹确实已创建?
您只是在调用 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