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

Python读取names.txt批量创建同名目录及子文件15.txt的实现问题

需求说明

文件 names.txt 中存储了姓名列表,文件内每行对应一个姓名。

示例文件内容

  • Lisa
  • Luke
  • Marry

实现目标

  • 遍历姓名列表中的每个姓名,若对应名称的目录不存在则完成创建
  • 在每个姓名对应目录中,创建名为 15.txt 的文件

待修正原代码
with open("names.txt") as f:
for line in f:
    readnewline = f.read()
    name = []
    for name in readnewline:
        name = name.strip()
    if '.' not in name[-1]:
        directory = os.path.join(*([folder_path] + names))
        if not os.path.exists(directory):
            print('mk directory: {}'.format(directory))
            os.makedirs(directory)
    else:
        new_file = os.path.join(*([folder_path] + names))
        if not os.path.exists(new_file):
            with open(new_file, 'w'):
                print('write file: {}'.format(new_file))

原代码问题说明

原代码存在多处错误,无法正常实现需求:

  • 缺少依赖导入:使用了os模块相关方法,但未提前导入os
  • 文件读取逻辑冲突:同时使用for line in f逐行迭代和f.read()全量读取,会导致内容漏读、读取错位
  • 变量使用混乱:存在同名变量循环覆盖问题,还引用了从未定义的folder_path、names变量
  • 业务逻辑错误:通过判断名称末尾是否包含.区分目录和文件,完全不符合需求逻辑
  • 路径拼接错误:路径拼接规则和目标需求不匹配,无法生成正确的目录、文件路径
  • 文件创建无效:打开文件的上下文块内无有效操作,无法正常生成目标文件

修正后可运行代码
import os

# 可自行修改为目标根目录路径,默认使用脚本运行的当前目录
folder_path = "./"

with open("names.txt", "r", encoding="utf-8") as f:
    for line in f:
        name = line.strip()
        # 跳过文件中的空行,避免创建无效目录
        if not name:
            continue
        # 拼接当前姓名对应的目录路径
        user_dir = os.path.join(folder_path, name)
        # 目录不存在则创建
        if not os.path.exists(user_dir):
            os.makedirs(user_dir)
            print(f'创建目录: {user_dir}')
        # 拼接目录下15.txt的完整路径
        target_file = os.path.join(user_dir, "15.txt")
        # 文件不存在则创建
        if not os.path.exists(target_file):
            # 不需要写入内容的话,块内写pass即可生成空文件
            with open(target_file, "w", encoding="utf-8") as fw:
                pass
            print(f'创建文件: {target_file}')

使用说明

  • 如果需要把所有姓名目录存到指定位置,直接修改folder_path的值即可
  • 代码统一使用os.path.join拼接路径,可兼容Windows、macOS、Linux不同操作系统的路径规则
  • 增加了空行跳过逻辑,避免因文件末尾空行、行间空行生成无效目录

内容的提问来源于stack exchange,提问作者MunkD.R

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 22:36:21