【发布时间】:2018-03-13 08:27:22
【问题描述】:
我在创建文件夹时遇到“错误”。 首先,这是我正在使用的代码:
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 输出,该文件夹是否真的创建了?
【问题讨论】:
-
如果您只是创建一个变量来存储扩展路径并在必要时使用它会更好:
path = os.path.expanduser('~\\Desktop\\Folder')。然后使用path作为os.makedirs()和os.path.isdir()的参数。这有助于减少此类错误。 -
我试过这样做,但它给了我一个错误......现在再试一次。谢谢顺便说一句。另外,问题是我有一些嵌套文件夹,比路径中包含(连接)变量的文件夹更复杂。
标签: python subprocess directory expanduser