Я написал сценарий, который разбивает видеофайл на фреймы с использованием cv2 и некоторых других модулей. До сих пор я был счастлив вставлять файлы в файлы и запускать код, но теперь я хочу, чтобы пользователь вводил пути и имена файлов в ответ на приглашение. Это должно быть легко, но у меня много проблем, чтобы работать с os.path. Основная проблема заключается в том, что я хочу, чтобы имя каждого файла изображения (например, фрейм) содержало в нем число, которое показывает, где оно входит в последовательность. Приведенный ниже код является то, что у меня есть:Форматирование файловых путей с использованием переменных в os.path
filepath = input('Please enter the filepath for the clip: ')
clip = cv2.VideoCapture(filepath)
#### This code splits the clip into scenes
filepath1 = input('Please enter the filepath for where the frames should be saved: ')
name = input('Please enter the name of the clip: ')
ret, frame = clip.read()
count = 0
ret == True
while ret:
ret, frame = clip.read()
cv2.imwrite((os.path.join(filepath1,name, '(%d)','.png') % count, frame))
count += 1
Однако производит следующее сообщение об ошибке:
cv2.imwrite((os.path.join(filepath1,name, '(%d)','.png') % count, frame))
TypeError: Required argument 'img' (pos 2) not found
В том числе % count, frame
переменных в скобках в команде os.path.join дает другую ошибку:
TypeError: not all arguments converted during string formatting
Что он должен сделать, это написать несколько .png файлов, называемых name(x)
на месте, как MYcomputer/mydesktop/myfolder/
. Я не уверен, что здесь не так - любая помощь ценится!
Спасибо, что расчистили это для меня! Тем не менее, теперь я получаю другую ошибку: 'cv2.imwrite ((os.path.join (filepath1, name + '(% d) .png'% count), frame)) ТипError: Требуемый аргумент 'img '(поз. 2) не найдено' Любые мысли по этому поводу? – Lodore66
Как я уже сказал, проверьте ваше «(» и «)» место;) imwrite нуждается в 1-м аргументе путь к файлу, а затем изображение. вы передаете кортеж с файловым путем и изображением. Таким образом, двойной - "(" и - ")" слишком много. – BloodyD
Ах да, я вижу <кашель смущенно>. Спасибо миллион, за исправление и образование! Прекрасно работает – Lodore66