У меня есть 5 файлов, содержащих числа, и мне нужно найти список чисел и напечатать имя файла, который у него есть. я пробовал этот код, но не работает
import os
out = open('output', 'w')
numbers = [23175,2080,6277,6431,19846,10330,25408,25811,8454,10515]
filenames = {
'G':'green.txt',
'R':'red.txt',
'B':'blue.txt',
'Y':'yellow.txt',
'O':'orange.txt',
}
for k,filename in filenames.items():
j=0
with open(filename, 'r') as f:
for line in f:
if int(line.strip()) == numbers[j]:
print(filename)
print(numbers[j])
else :
j+=1
я получил
if int(line.strip()) == numbers[j]:
IndexError: list index out of range
пробовал увеличить но толку не было
Попробуй это:
numbers = [23175, 2080, 6277, 6431, 19846,
10330, 25408, 25811, 8454, 10515]
str_numbers = [str(num) for num in numbers]
filenames = {
'G': 'green.txt',
'R': 'red.txt',
'B': 'blue.txt',
'Y': 'yellow.txt',
'O': 'orange.txt',
}
for k, filename in filenames.items():
with open(filename, 'r') as f:
for line in f:
num_line = line.strip()
if num_line in str_numbers:
print(f"{k}:{filename} => {num_line}")
Ваш
j
всегда0
. может быть, вы должны увеличить его где-то?