【发布时间】:2015-12-07 11:03:21
【问题描述】:
我编写了以下代码来获取子文件夹中文件的路径。
import os
os.chdir('C:\Users\mike\Desktop\a')
base_dir = os.getcwd()
sub_dirs = [os.path.join(base_dir, d) for d in os.listdir(base_dir)]
for i in os.listdir(sub_dirs):
path = [os.path.join(sub_dirs), i]
但它不起作用,我收到此错误: 回溯(最近一次通话最后): 文件“C:\Users\mike\Desktop\mine1.py”,第 6 行,在 对于 os.listdir(sub_dirs) 中的 m: TypeError:强制转换为 Unicode:需要字符串或缓冲区,找到列表
有什么问题?
干杯
【问题讨论】:
-
你想让
os.path.join(sub_dirs)做什么? -
我想为我的文本文件设置一个路径,如下所示:>>> path 'C:\\Users\\mike\\Desktop\\a\x03\x01.txt'
-
题外话:对字符串文字 Windows 路径使用原始字符串,否则当路径组件第一次以
a、b开头时,您会感到很意外、f或n(可能还有其他几个)。对于非原始字符串,\b是 ASCII 退格字符,而不是后跟b的反斜杠,类似问题适用于其他示例。最好是安全的并始终使用原始字符串,例如,在您的示例中,r'C:\Users\mike\Desktop\a'(注意在打开引号之前前导r)。
标签: python