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

如何用Python在脚本目录创建文件夹并在其中写入文件?

解决方案:在脚本目录创建文件夹并生成正确文件路径

你的问题主要出在两个地方:一是没有明确指定脚本所在目录作为文件夹的创建根路径,二是手动拼接路径分隔符破坏了os.path.join的逻辑,导致文件路径错误。以下是最优实现方式:

1. 先锁定脚本所在的绝对目录

直接用相对路径创建文件夹时,会在当前运行脚本的工作目录(而非脚本本身所在目录)生成文件夹。要固定在脚本目录操作,先获取脚本的绝对路径:

import os
# 获取当前脚本所在的绝对目录
script_dir = os.path.dirname(os.path.abspath(__file__))

2. 简洁创建目标文件夹

不用手动检查文件夹是否存在,os.makedirs的exist_ok=True参数可以自动处理文件夹已存在的情况,同时结合脚本目录生成正确的文件夹路径:

folder_name = "TestFolder"
# 拼接脚本目录与文件夹名,得到完整的文件夹绝对路径
folder_path = os.path.join(script_dir, folder_name)
# 创建文件夹,已存在则跳过
os.makedirs(folder_path, exist_ok=True)

3. 正确生成文件路径

你之前手动给文件夹名加"/"的操作是错误的——os.path.join会根据操作系统自动适配路径分隔符(Windows用\,Unix/Linux用/),手动添加分隔符会导致路径拼接逻辑失效。正确写法是直接传入文件夹路径和文件名:

file_name = "your_file.txt"
# 拼接文件夹路径与文件名,得到最终的文件绝对路径
file_path = os.path.join(folder_path, file_name)

4. 写入文件内容

用生成的绝对路径写入文件即可:

with open(file_path, "w", encoding="utf-8") as f:
    f.write("这里是要写入文件的内容")

完整可运行代码

import os

# 获取脚本所在的绝对目录
script_dir = os.path.dirname(os.path.abspath(__file__))

# 创建目标文件夹
folder_name = "TestFolder"
folder_path = os.path.join(script_dir, folder_name)
os.makedirs(folder_path, exist_ok=True)

# 生成文件路径并写入内容
file_name = "demo.txt"
file_path = os.path.join(folder_path, file_name)

with open(file_path, "w", encoding="utf-8") as f:
    f.write("成功在脚本目录的子文件夹中创建并写入文件!")

核心要点

  • 始终用os.path.join拼接路径,不要手动添加/或\,保证跨系统兼容性。
  • 用os.path.abspath(__file__)锁定脚本目录,避免当前工作目录变动导致的路径混乱。
  • os.makedirs(exist_ok=True)替代手动文件夹存在性检查,代码更简洁可靠。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 15:43:29