Python os.makedirs()无法创建目录最后一级文件夹问题咨询
解决os.makedirs()未创建最后一级目录或未生成文件的问题
问题原因分析
- 执行
os.makedirs(os.path.dirname("data/3/2/4"), exist_ok=True)时,os.path.dirname()的作用是提取路径的父目录,对data/3/2/4而言,它返回的是data/3/2,因此os.makedirs只会创建到这一级,不会生成4文件夹。 - 传入文件路径
data/3/2/4/things.txt时,os.path.dirname()返回data/3/2/4,os.makedirs会创建这个文件夹,但os.makedirs仅负责创建目录结构,不会自动生成文件。
简便解决办法
情况1:仅需创建目标文件夹data/3/2/4
直接将目标文件夹路径传给os.makedirs,无需嵌套os.path.dirname:
import os os.makedirs("data/3/2/4", exist_ok=True)
exist_ok=True可避免文件夹已存在时抛出异常。
情况2:需要创建文件所在文件夹并生成文件
分两步操作:先创建文件的父目录,再用open()函数生成文件:
import os file_path = "data/3/2/4/things.txt" # 创建文件所在的所有上级目录 os.makedirs(os.path.dirname(file_path), exist_ok=True) # 生成空文件(如需写入内容,可在with块内添加f.write()代码) with open(file_path, 'w') as f: pass # 示例:f.write("Hello World")
内容的提问来源于stack exchange,提问作者Cl0ned
相关产品推荐
相关产品推荐

