Как мне вывести файлы для 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')