如何仅追加文件路径?请求提取多个TXT文件路径的技术解决方案
嘿,这问题很好解决!
你现在代码里的dirfiles.append(f)是把打开后的文件对象(就是你看到的<_io.TextIOWrapper...>那串东西)添加到列表里了,而不是你需要的文件路径字符串。其实完全不需要打开文件,直接把拼接好的路径存进列表就可以啦。
改好的代码示例
import os path = r"mypath" dirfiles = [] for filename in os.listdir(path): # 如果你只需要TXT文件,加个过滤条件 if filename.endswith('.txt'): # 拼接完整路径,直接加到列表里 full_path = os.path.join(path, filename) dirfiles.append(full_path) print(dirfiles)
额外优化建议
- 要是不需要只选TXT文件,删掉
if filename.endswith('.txt'):这行就行。 - 原来的
try-except可以去掉,因为我们不再打开文件,也就不会触发文件操作的异常了。 - 用列表推导式能让代码更简洁:
import os path = r"mypath" # 只收集TXT文件路径 dirfiles = [os.path.join(path, f) for f in os.listdir(path) if f.endswith('.txt')] # 收集所有文件路径的话,去掉判断条件: # dirfiles = [os.path.join(path, f) for f in os.listdir(path)] print(dirfiles)
这样输出的dirfiles里就全是干净的文件路径字符串,不会有那些模式、编码的额外信息咯。
内容的提问来源于stack exchange,提问作者user16446239
相关产品推荐
相关产品推荐

