Python实现:如何获取带完整单斜杠路径的文件名列表
解决Python生成路径列表时双反斜杠转单斜杠的问题
首先得跟你说清楚:你在控制台看到的双反斜杠\\,其实只是Python对字符串中转义字符的显示方式——你的字符串里实际已经是单个反斜杠\了。但如果确实需要输出的列表呈现单斜杠的格式(比如用于展示、写入文件等场景),我们可以调整代码来实现。
优化后的代码方案
推荐使用os.path.join来拼接路径(跨平台且避免手动拼接的错误),再根据需求处理路径的显示:
import os from os import listdir from os.path import isfile, join # 获取当前脚本所在目录 dir_path = os.path.dirname(os.path.realpath(__file__)) print(dir_path) # 打印当前脚本路径 # 获取当前工作目录 cwd = os.getcwd() full_paths = [] # 筛选当前目录下的文件 onlyfiles = [f for f in listdir(cwd) if isfile(join(cwd, f))] for filename in onlyfiles: # 用os.path.join规范拼接完整路径 full_path = os.path.join(dir_path, filename) # 替换为正斜杠(Windows完全支持正斜杠作为路径分隔符,避免转义问题) full_paths.append(full_path.replace('\\', '/')) # 输出单斜杠格式的路径列表 print(full_paths)
关键说明
- 双反斜杠的本质:Python中
\是转义字符,所以控制台打印时会用\\表示实际的单个\。如果你只是需要路径能正常被系统识别,其实不需要修改——当前代码生成的路径已经是有效的,只是显示看起来是双反斜杠而已。 - 转单斜杠的两种方式:
- 换成正斜杠:用
replace('\\', '/'),这是最省心的方式,Windows系统完全兼容正斜杠路径。 - 保留反斜杠但显示单斜杠:如果一定要输出
C:\Users\...这种格式,可以在打印时直接处理,比如print([path for path in full_paths])其实内部是单斜杠,只是控制台显示双斜杠;如果要写入文件或生成字符串,直接使用即可,文件里会是单斜杠。
- 换成正斜杠:用
- 推荐用
os.path.join:手动拼接dir_path+"\\"+i容易因为路径末尾是否带斜杠出现错误,os.path.join会自动处理路径分隔符,跨平台更友好。
内容的提问来源于stack exchange,提问作者Anuj
相关产品推荐
相关产品推荐

