我必須從文件夾中的文件名中識別和隔離數字序列,並且可選地識別非連續序列。這些文件是.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. 提取文件名
- 4. 提取文件名
- 5. 用python提取鏈序列
- 6. 提取子序列Python
- 7. 從python中的文件名中提取和排序數字
- 8. 提取排序的文件名由Alephabets
- 9. 按文件名在Python排序列表
- 10. 使用python提取提取文件
- 11. 從fasta文件提取序列
- 12. 從CSV提取命名列 - Python
- 13. 提取.zip文件在python
- 14. Python--提取http頭文件
- 15. 從提取的文件名
- 16. 提取文件名的regexp
- 17. 從提取文件名
- 18. 從Apache日誌中提取文件名和公用名用Python
- 19. 如何從文件列表中提取文件名?
- 20. python從zip文件夾中獲取文件夾名稱列表
- 21. powershell - 提取文件名和擴展名
- 22. 提取文件名(不含擴展名)
- 23. 提取Shiny列名的順序
- 24. 7zip - 獲取提取文件的名稱
- 25. Python:如何基於二進制內容的文本文件提取DNA序列?
- 26. Python數據提取文本文件
- 27. 從.doc文件中提取文本python
- 28. 從html文件中提取文本python
- 29. Python字符串提取文本文件
- 30. Python從文件中提取文本塊
什麼是你的代碼,產生錯誤? –