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

Python提取目录中指定扩展名文件的文件名前缀问题

批量提取目录下.txt文件的文件名前缀(一行实现)

嘿,我来帮你搞定这个问题!你已经离目标很近了,只需要在现有的列表推导式里对每个文件名做个小处理就行,而且完全可以一行实现。

首先先纠正你代码里的一个小问题:os.listdir("path")这里的"path"是字符串,应该改成变量path,不然程序会去找名为"path"的目录,而不是你定义的/home/inputs。

接下来直接给你一行解决的代码:

import os
path = "/home/inputs"
prefixes = [os.path.splitext(f)[0] for f in os.listdir(path) if f.endswith('.txt')]
print(prefixes)

运行这段代码后,输出就是你想要的:['new_categorized', 'new', '2017_input']

原理说明:

  • os.path.splitext(f)会把每个文件名拆成一个元组,比如new_categorized.txt会变成('new_categorized', '.txt'),取索引[0]就拿到了不带扩展名的前缀。
  • 把这个操作嵌入到你原来的列表推导式里,就能批量处理所有符合条件的.txt文件。

如果你想用更现代简洁的写法,推荐用Python 3.4+的pathlib模块,代码会更优雅:

from pathlib import Path
prefixes = [p.stem for p in Path("/home/inputs").glob("*.txt")]
print(prefixes)

这里Path.glob("*.txt")会直接匹配目录下所有.txt文件,而p.stem属性直接返回不带扩展名的文件名,连splitext都不用写,是不是更清爽?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:09:57