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

Python遍历目录写文件名到txt时如何逐行换行并转为全大写

问题根源

你现有代码无法达到预期的原因有三点:

  • str(file_dir)是将整个Python列表对象直接转为字符串,输出的是列表的原生格式(带方括号、元素间逗号分隔),不会自动拆分每个文件名换行
  • print('\n')是向控制台输出换行符,不是向你打开的Pics.txt写入内容,自然不会修改文件内的格式
  • .upper()是字符串专属方法,需要作用在每个单独的文件名字符串上,不能直接对整个列表调用。
可直接运行的修正代码
import os

# 目标目录路径
path1 = r"V:\DATABASES\0 Suspension\Suspensia Pictures"

# 推荐使用with上下文管理器打开文件,自动处理文件关闭,避免资源泄漏
with open('Pics.txt', 'w', encoding='utf-8') as f:
    # 遍历目录下的所有条目
    for file_name in os.listdir(path1):
        # 文件名转全大写后拼接换行符写入文件
        f.write(f"{file_name.upper()}\n")
可选优化

如果需要过滤掉目录下的子文件夹,只保留文件条目,可以加一层路径判断:

import os

path1 = r"V:\DATABASES\0 Suspension\Suspensia Pictures"
with open('Pics.txt', 'w', encoding='utf-8') as f:
    for file_name in os.listdir(path1):
        full_path = os.path.join(path1, file_name)
        # 仅当条目是文件时才写入
        if os.path.isfile(full_path):
            f.write(f"{file_name.upper()}\n")

运行后生成的Pics.txt就会是每个全大写文件名单独占一行的格式,和你预期的效果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 01:27:28