You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用os模块创建文件夹触发文件写入报错,求替代方案

问题原因说明

你遇到的报错并非os模块本身导致,核心原因是os.chdir("Example_directory/")修改了程序的当前工作目录,后续代码中使用的相对路径File_directory/document.txt会基于切换后的Example_directory路径寻址,而不是你原本的项目根目录,自然找不到对应路径。

修复方案

方案1:不切换工作目录直接创建文件夹

无需调用os.chdir,直接拼接完整的文件夹路径创建即可,不会影响后续相对路径的寻址:

import os

# 直接创建目标文件夹,无需切换工作目录
os.mkdir("Example_directory/New_folder_name")

# 原有写入代码无需修改即可正常运行
file = open("File_directory/document.txt", "w")
file.write("Text sample")
file.close()

方案2:切换目录后切回原工作目录

如果业务逻辑确实需要临时切换工作目录,可提前保存初始工作目录,操作完成后切回即可:

import os

# 保存初始工作目录
original_cwd = os.getcwd()
os.chdir("Example_directory/")
os.mkdir("New_folder_name")
# 操作完成后切回原目录
os.chdir(original_cwd)

# 写入代码正常运行
file = open("File_directory/document.txt", "w")
file.write("Text sample")
file.close()

方案3:使用pathlib模块操作(推荐)

Python 3.4及以上版本自带pathlib模块,面向对象的路径操作方式更简洁,也无需切换工作目录:

from pathlib import Path

# 创建文件夹,exist_ok=True表示文件夹已存在时不会抛出异常
Path("Example_directory/New_folder_name").mkdir(parents=True, exist_ok=True)

# 写入文件也可直接调用pathlib的封装方法,无需手动开闭文件
Path("File_directory/document.txt").write_text("Text sample")
注意事项
  • 非必要场景不要随意调用os.chdir修改全局工作目录,极易造成相对路径寻址混乱
  • 涉及多层级文件夹创建时,可给os.makedirs或者Path.mkdir加上parents=True参数,自动创建不存在的父级文件夹

内容的提问来源于stack exchange,提问作者Spiceinajar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 14:36:03