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

Python中替换文件路径反斜杠为正斜杠报错求助

解决CSV文件路径混合斜杠及替换报错问题

问题原因

你遇到的AttributeError是因为glob.glob()返回的csvfiles是列表类型,而replace()是字符串专属方法,不能直接在列表上调用,必须遍历列表里的每个路径字符串单独处理。

另外补充:Windows系统下Python的文件操作函数(比如pd.read_csv())完全能识别混合斜杠的路径,不会影响文件读取。如果只是为了统一格式美观,再做处理即可。

解决方法

方法1:列表推导式逐个替换斜杠

直接遍历csvfiles列表,对每个路径字符串执行替换操作:

import glob
import os 
import pandas as pd

mycsvdir = 'D:/myfiles/folder/anotherfolder/1folder/2folder'
csvfiles = glob.glob(os.path.join(mycsvdir, '*.csv'))
# 遍历列表替换每个路径的反斜杠为正斜杠
csvfiles = [path.replace('\\', '/') for path in csvfiles]

方法2:使用pathlib库(推荐)

pathlib是Python3.4+内置的现代路径处理库,能自动适配不同系统的路径分隔符,还能轻松转成统一格式:

from pathlib import Path
import pandas as pd

mycsvdir = Path('D:/myfiles/folder/anotherfolder/1folder/2folder')
# 匹配所有csv文件,返回Path对象列表
csvfiles = list(mycsvdir.glob('*.csv'))
# 用as_posix()直接返回正斜杠格式的字符串
csvfiles = [path.as_posix() for path in csvfiles]

统计列数的完整示例

结合路径处理,完成500个CSV文件列数统计:

from pathlib import Path
import pandas as pd

mycsvdir = Path('D:/myfiles/folder/anotherfolder/1folder/2folder')
csvfiles = list(mycsvdir.glob('*.csv'))

# 统计每个文件的列数
file_col_count = {}
for file_path in csvfiles:
    try:
        df = pd.read_csv(file_path)
        file_col_count[file_path.as_posix()] = len(df.columns)
    except Exception as e:
        print(f"处理文件{file_path.as_posix()}出错: {str(e)}")

# 输出统计结果
for file, count in file_col_count.items():
    print(f"{file}: {count}列")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 22:32:39