Python 3.x 使用两个串联字符串时FileNotFoundError:[WinError 3]
在将一个或多个字符串作为文件名的一部分进行连接时,我在创建目录时遇到问题。例如:Python 3.x 使用两个串联字符串时FileNotFoundError:[WinError 3],python-3.x,Python 3.x,在将一个或多个字符串作为文件名的一部分进行连接时,我在创建目录时遇到问题。例如: DIR = r"D:/My/Directory" classes = ['itemA', 'itemB'] for item in classes: for scope in ["training/", "testing/"]: os.mkdir(os.path.join(DIR, scope + item)) 创建错误: FileNotFoundError:[WinError 3]系
DIR = r"D:/My/Directory"
classes = ['itemA', 'itemB']
for item in classes:
for scope in ["training/", "testing/"]:
os.mkdir(os.path.join(DIR, scope + item))
创建错误:
FileNotFoundError:[WinError 3]系统找不到路径
明确规定:
'D:/My/Directory\\training/itemA'
当我不使用
scope+项时,os.mkdir
会起作用,但当我使用scope+项时,它会抛出此错误。我不确定函数处理training/itemA
与trainingitemA
的方式有什么不同,当它们都被解释为字符串文字时。Windows上的路径分隔符是\
而不是/
,您也可以使用os.path.join
再次将范围
加入项目
:
DIR=r“D:\My\Directory”
类别=['itemA','itemB']
对于类中的项目:
对于[“培训”、“测试”]中的范围:
mkdir(os.path.join(DIR、scope、item))
在尝试创建子目录之前,还要确保父目录(例如D:\My\Directory\training
)存在,或者使用os.mkdirs
而不是os.mkdir
(另请参见)。您是否在windows上使用正斜杠(//code>)?他们不应该后退吗?我没有使用windows,但这似乎不对。谢谢!工作得很有魅力!澄清一下:对于训练和测试,是否有比使用os.mkdir(os.path.join(DIR,'train'))
更好的方法,然后必须循环?您的意思是创建父级和子级?是的,您可以使用os.mkdirs
: