Вы можете сделать что-то вроде следующего, которое строит словарь с ключом по имени файла sans extension и с подсчетом количества файлов, соответствующих требуемым расширениям. Затем вы можете перебирать пары файлов открытия словарей:
import os
from collections import defaultdict
EXTENSIONS = {'.json', '.txt'}
directory = '/path/to/your/files'
grouped_files = defaultdict(int)
for f in os.listdir(directory):
name, ext = os.path.splitext(os.path.join(directory, f))
if ext in EXTENSIONS:
grouped_files[name] += 1
for name in grouped_files:
if grouped_files[name] == len(EXTENSIONS):
with open('{}.txt'.format(name)) as txt_file, \
open('{}.json'.format(name)) as json_file:
# process files
print(txt_file, json_file)
Знаете ли вы имена файлов заранее или читаете их из каталога? Не могли бы вы рассказать о том, что именно вы пытаетесь достичь? – Mureinik
Не совсем понятно, какова ваша фактическая проблема. Поиск пар имен файлов? Открытие файлов? Вот как открыть несколько файлов одновременно с помощью 'with': http://stackoverflow.com/questions/4617034/how-can-i-open-multiple-files-using-with-open-in-python/4617069#4617069 –
Да Я знаю имена файлов заранее. Они представляют собой пары с одним и тем же именем, но разные расширения. Я должен открыть пару парами с одним и тем же именем, но с другим расширением. – CosimoCD