Как мне вывести файлы для post_id?

#ПАПКА photo: 69_0.jpg, 69_1.jpg, 69_2.jpg, 970.jpg

def jpg():
    post_id =  69
    text = "Hello World"

    pics = glob.glob(f'photo//*.jpg')
    
            
    mylist = []
    for pi in pics:
            mylist.append(pi)
            photo = ','.join(mylist)

    print(photo, text)

jpg()

Ответы (1 шт):

Автор решения: Namerek
from pathlib import Path
# Для прохода по папкам, по моему мнению, лучше подойдет библиотека pathlib

# Для избежания неопределенностей 
#   в определении местонахождения папки с фото
#   привяжемся к текущему местоположению в файловой системе   
#   определяем папку, содержащую фото. 
#   Если папка находится в одном каталоге со скриптом то

img_folder = Path(__file__).parent.joinpath('photo')

# Если будете тестировать в jupyter замените на 
# img_folder = Path().joinpath('photo')


def jpg(post_id: int):
    text = "Hello World"

    img_list = ','.join(
            # Опять же для однозначности местоположения 
            # файла в системе определяем абсолютный путь
            #  и выводим его в строковом формате, для объединения с помощью join
            img.absolute().as_posix() 
            
            # В случае необходимости поиска по подкаталогам, использовать rglob
            for img in img_folder.glob(f'{post_id}_*.jpg')
    )

    print(img_list, text, sep='\n')

jpg(69)

Коментарии - бонус за настойчивость )))

UPD

Для подумать

from pathlib import Path
from dataclasses import dataclass


@dataclass
class Message:
    post_id: int
    text: str
    photos: str = None


img_folder = Path().joinpath('photo')

def jpg(msg: Message):
    msg.photos = ','.join(
            img.absolute().as_posix()
            for img in img_folder.glob(f'{msg.post_id}_*.jpg')
    )
    return msg

m = Message(
    post_id=69,
    text='Hello, World'
)

print(
    jpg(m)
)
# Message(post_id=69, text='Hello, World', photos='C:/Users/karpo/Projects/Python/snippets/photo/69_01.jpg,C:/Users/karpo/Projects/Python/snippets/photo/69_02.jpg')
→ Ссылка