@oneLEAM

Не то кол-во файлов чем нужно создается после работы скрипта, что не так?

У меня есть 26 json файлов общее кол-во ключей 4994, узнал с помощью кода:
Счётчик кол-ва значений
import json

alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u',
            'v', 'w', 'x', 'y', 'z']
count = 0

for i in alphabet:
    with open(f'stuff/{str(i)}_stuff.json') as file:
        value = json.load(file)
    count += len(value)
print(count)

озвучил каждое значение с помощью gtts:
Озвучка для каждого значения
import json

alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u',
            'v', 'w', 'x', 'y', 'z']

for i in alphabet:
    with open(f'stuff/{str(i)}_stuff.json') as file:
        value = json.load(file)
    for j in range(0, len(value)):
        my_string = value[str(j)][0]
        tts = gTTS(text=my_string, lang='en')
        tts.save(f'mp3/{my_string}.mp3')
        print(i, j)
    sleep(30)

Но файлов в папке не 4994, а 4674. Я не понимаю как это происходит и из-за этого сделал скрипт который проверяет у каждого ли значения есть свой mp3 файл:
Проверка на наличия всех файлов mp3
import os.path
import json


alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u',
            'v', 'w', 'x', 'y', 'z']


for i in alphabet:
    with open(f'stuff/{str(i)}_stuff.json') as file:
        value = json.load(file)
    for j in range(0, len(value)):
        my_string = value[str(j)][0]
        check = os.path.isfile(f'mp3/{my_string}.mp3')
        if check == True:
            print(f'{j}:{value[str(j)][0]} - Есть {my_string}.mp3')
            continue
        else:
            print(f'{i}:{j} - {check}')
            print('Отправляю запрос...')
            tts = gTTS(text=my_string, lang='en')
            tts.save(f'mp3/{my_string}.mp3')
            print('Успешно')

Но скрипт пишет что для всех значений есть свой mp3 файл.
Я не понимаю в чём прикол, какая-то ошибка в одном из моих кодов или что?
  • Вопрос задан
  • 106 просмотров
Решения вопроса 2
@oneLEAM Автор вопроса
Оказывается у меня были повторяющееся значения. Т. е. два или больше значений имели один mp3 файл.
Помогли Алан Гибизов и Vindicar.
Ответ написан
Комментировать
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Ключи не уникальны, поэтому значений меньше, чем ключей - значение с последнего неуникального ключа перезаписываетпредылущее значение.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы