Как я уже сказал в одном из моих комментариев, если вы находитесь на Python 3.4+, pathlib
сделает вашу жизнь намного проще.
Чтобы получить список все имена файлов, заканчивающиеся на .out
из папки folder
, вы просто делаете:
from pathlib import Path
folder = Path('folder')
outs = [_.name for _ in folder.glob('*.out')]
И это все.
Если вы хотите заполнить список с именем lines
все *.out
содержимое файлов, которые вам могут просто понадобиться:
from pathlib import Path
folder = Path('folder')
lines = []
lines.extend([_.read_text().split() for _ in folder.glob('*.out')])
И вот небольшое доказательство концепции:
$ tree temp
temp
├── file1.out
├── file2.out
├── file3.txt
└── file4.txt
0 directories, 4 files
$
Python 3.7.5 (default, Dec 15 2019, 17:54:26)
[GCC 9.2.1 20190827 (Red Hat 9.2.1-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from pathlib import Path
>>> folder = Path('temp')
>>> outs = [_.name for _ in folder.glob('*.out')]
>>> txts = [_.name for _ in folder.glob('*.txt')]
>>> outs
['file1.out', 'file2.out']
>>> txts
['file3.txt', 'file4.txt']
>>>
Вот еще один способ объединения содержание:
$ cat temp/file1.out
1
2
3
4
$ cat temp/file2.out
5
6
7
8
$
>>> lines = [l for _ in folder.glob('*.out') for l in _.read_text().split()]
>>> lines
['1', '2', '3', '4', '5', '6', '7', '8']
>>>
Надеюсь, это поможет.