Как прочитать файл с множеством разных имен с циклом? и я, как записать в файл json?

#python

Вопрос:

пример : S1-1.jpg, S1-2.jpg, S1-3.jpg в статическом каталоге

Теперь я написал так, но это выглядит так грязно

 image = open('./static/S1-1.jpg', 'rb') #open binary file in read mode
            image_read = image.read()
            image_64_encode = base64.encodestring(image_read)
image.close()

image = open('./static/S1-2.jpg', 'rb') #open binary file in read mode
            image_read = image.read()
            image_64_encode = base64.encodestring(image_read)
image.close()

image = open('./static/S1-3.jpg', 'rb') #open binary file in read mode
            image_read = image.read()
            image_64_encode = base64.encodestring(image_read)
image.close()
 

и я хочу записать в «URL»файла json

пример файла json

 { "intents": [ {
    "tag": "S1-1",
    "patterns": ["Where is S1-1", "S1-1", "Find S1-1","How to go to S1-1","Where S1-1"],
    "responses": ["S1-1 : Blue is Library, Red is destination."],
    "URL":[""]
    } ] }
 

Заранее спасибо

Ответ №1:

Попробуйте это:

 files = ["S1-1", "S1-2", "S2-55" ]                   # a list of all the file names you want to use
for cur in files:
    image = open(f'./static/{cur}.jpg', 'rb') #open binary file in read mode
    image_read = image.read()
    image_64_encode = base64.encodestring(image_read)
    image.close()
 

Комментарии:

1. Большое спасибо, но есть много имен, таких как S1-1~1-7, S2-1, N4-1 и т. Д. В таком случае, как это должно быть? извините за подробности

2. Отредактировал ответ. Проверьте это сейчас. Если вы найдете ответ полезным, пожалуйста, примите его 🙂

Ответ №2:

Попробуйте Это:

  1. Создайте список имен файлов. Для этого необходимо ввести имена файлов вручную.
     filenames = ['file1.txt', 'file2.txt', 'file3.txt']
 
  1. Создайте переменную для хранения содержимого файла. Эта переменная будет хранить текст файла для каждой итерации. «File_in» — это пустой список, в котором может храниться содержимое каждого файла на каждой итерации.
     file_in = list()
 
  1. Используйте цикл «для» для циклического просмотра каждого имени файла в списке имен файлов. Это гарантирует, что каждый файл откроется и будет содержать ссылочную переменную в списке «file_in».:
     x = 0 for item in filenames:
        file_in[x] = open(item, 'r')  
        x  = 1