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

如何将目录中图片的文件名与路径导出至CSV文件?

最佳方法:用Python的csv模块直接边遍历边写入

嘿,作为编程新手能写出os.walk的遍历代码已经很赞啦!针对你的需求,直接使用Python内置的csv模块是最优解——既不用额外维护两个列表,还能自动处理CSV格式的各种细节(比如文件名里的逗号、引号这些特殊字符),省心又靠谱。

为什么不用两个列表?

如果先把所有文件名和路径存到两个列表里再导出,虽然可行,但对于几百个文件来说,边遍历边写入CSV会更省内存,代码也更简洁——毕竟你不需要把所有数据都存在内存里,写一行是一行就够了。

完整实现代码

这里给你调整后的可直接运行的代码:

import os
import csv

# 目标图片目录路径
path = '/Users/User/Photos/'
# 导出的CSV文件保存路径
output_csv = 'photo_info.csv'

# 用with语句打开文件,自动处理文件关闭,避免资源泄漏
with open(output_csv, 'w', newline='', encoding='utf-8') as csvfile:
    # 创建CSV写入对象
    writer = csv.writer(csvfile)
    # 先写入表头,让CSV结构更清晰
    writer.writerow(['文件名', '文件路径'])
    
    # 遍历目录树
    for root, dirs, files in os.walk(path):
        for file in files:
            # 可选:过滤图片文件(根据你的规范命名调整后缀列表)
            if file.lower().endswith(('.jpg', '.jpeg', '.png', '.gif', '.bmp')):
                file_full_path = os.path.join(root, file)
                file_name = os.path.basename(file)
                # 把当前文件的名称和路径写入CSV一行
                writer.writerow([file_name, file_full_path])

代码细节说明

  1. csv模块的优势:它会自动处理CSV的格式规则,比如如果文件名里包含逗号,会自动用引号包裹内容,避免CSV格式出错。
  2. with语句:不用手动调用close()关闭文件,代码更安全简洁。
  3. 图片过滤逻辑:如果你的目录里混有非图片文件,加上后缀判断可以只导出目标图片,你可以根据实际的图片格式调整后缀列表。
  4. 边遍历边写入:每找到一个符合条件的文件就立刻写入CSV,内存占用极低,处理几百个文件完全无压力。

如果你确实需要先收集所有数据再做额外处理(比如排序、去重),也可以用一个列表存储元组,示例如下:

import os
import csv

path = '/Users/User/Photos/'
output_csv = 'photo_info.csv'
photo_data = []

# 先收集所有数据
for root, dirs, files in os.walk(path):
    for file in files:
        if file.lower().endswith(('.jpg', '.png')):
            photo_data.append((os.path.basename(file), os.path.join(root, file)))

# 再统一写入CSV
with open(output_csv, 'w', newline='', encoding='utf-8') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow(['文件名', '文件路径'])
    writer.writerows(photo_data)

不过对于你的核心需求来说,第一种边遍历边写的方式更高效简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:23:21