我必须从文件夹中的文件名中识别和隔离数字序列,并且可选地识别非连续序列。这些文件是.dpx文件。几乎没有文件命名结构,除了文件名中的某个地方是一个序列号,并且扩展了“.dpx”。有一个叫做PySeq的精彩模块,可以完成所有的辛勤工作,除了炸弹目录有数千个,有时还有数十万个文件。 “参数列表太大”。有没有人具有处理序列号隔离和dpx文件的经验?每个文件最大可达100MB。我正在使用Python2.7开发一个CentOS框。文件名可能是这样的:
test00_take1_00001.dpx
test00_take1_00002.dpx
another_take_ver1-0001_3.dpx
another_take_ver1-0002_3.dpx
(连续两个序列)文件名序列提取python
0
A
回答
0
这应该做的正是你在做什么寻找。它将创建一个包含字符串开始和结束的字典并将完整字符串放入列表中。
然后将加入所有列表到一个列表(你不妨跳过这一部分,并把它变成列表的发电机关于内存更高的效率)
from collections import defaultdict
input_list = [
"test00_take1_00001.dpx",
"test00_take1_00002.dpx",
"another_take_ver1-0001_3.dpx",
"another_take_ver1-0002_3.dpx"]
results_dict = defaultdict(lambda: defaultdict(list))
matches = (re.match(r"(.*?[\W_])\d+([\W_].*)", item) for item in input_list)
for match in matches:
results_dict[match.group(1)][match.group(2)].append(match.group(0))
results_list = [d2 for d1 in results_dict.values() for d2 in d1.values()]
>>> results_list
[['another_take_ver1-0001_3.dpx', 'another_take_ver1-0002_3.dpx'], ['test00_take
1_00001.dpx', 'test00_take1_00002.dpx']]
相关问题
- 1. 从python文件名提取数字
- 2. 提取Python中的所有文件名
- 3. 用python提取链序列
- 4. 提取子序列Python
- 5. 提取排序的文件名由Alephabets
- 6. 提取.zip文件在python
- 7. Python--提取http头文件
- 8. 从提取文件名
- 9. 提取文件名的regexp
- 10. 提取文件名[壳牌]
- 11. 从Apache日志中提取文件名和公用名用Python
- 12. python从zip文件夹中获取文件夹名称列表
- 13. 提取文件名(不含扩展名)
- 14. powershell - 提取文件名和扩展名
- 15. 从html文件中提取文本python
- 16. Python字符串提取文本文件
- 17. 将文本文件提取到python中的多列
- 18. 使用python从文本文件中提取数据列
- 19. 从Python或R中的文件名列表中提取子字符串
- 20. 提取物“列名”在条件
- 21. Python程序:读取文件
- 22. Python读取CSV文件列并在csv文件中写入文件名和列名
- 23. 提取文件名以命名其他文件时出错
- 24. 从完整文件名提取文件名
- 25. ANT:加载文件名并从文件名中提取数据
- 26. 如何从文件路径名中提取文件名?
- 27. 用Python获取文件名和扩展名为hdfs的文件
- 28. RTP序列提取
- 29. 从列表中重命名文件名的文件在python
- 30. outlook通过libpst + python提取PST文件
什么是你的代码,产生错误? –