#python
#python
Вопрос:
Я хочу переместить видеофайлы из 1 папки в отдельные вложенные папки
Я создал скрипт для создания видео из кадров. Он создает несколько видео правильно, но только по одному определенному пути. Ниже приведен код
def frames_to_video(detected_object_input,video_op,fps):
folders=glob(detected_object_input)
img_list=[]
frame_array=[]
for folder in folders:
folder_name=os.path.basename(folder)
vid_ext=".mp4"
vid_name = folder_name vid_ext
final_op=video_op "\" vid_name
#print(final_op)
for f in glob(folder "/*jpg"):
img_list.append(f)
for i in range(len(img_list)):
filename = img_list[i]
img=cv2.imread(img_list[i])
height,width,layers=img.shape
size=(width,height)
print(filename)
frame_array.append(img)
out = cv2.VideoWriter(final_op,cv2.VideoWriter_fourcc(*'DIVX'),fps,size)
for i in range(len(frame_array)):
out.write(frame_array[i])
out.release()
detected_object_input= ("C:\new_multi_cat\models\research\object_detection\my_imgs\*")
video_op= ("C:\new_multi_cat\models\research\object_detection\my_imgs")
fps= 2
frames_to_video(detected_object_input, video_op, fps)
Предположим, что есть папка X. Он имеет несколько вложенных папок, таких как A, B, C. Мой код создает видеофайлы в соответствии с именами папок, т.Е. videoA, videoB, videoC и т. Д. Но эти видео создаются в папке X. Я хочу, чтобы эти видеофайлы создавались в соответствующих подпапках, таких как videoA внутри подпапки A, videoB внутри подпапки B и т. Д
Комментарии:
1. Вы пробовали использовать «/» вместо «\» или r»/»?
2. @mazunki где именно? при присвоении значения переменной final_op? На самом деле я пытался использовать «/», но результат был все тот же
3. Вы используете стандарт сокращения Windows и обратную косую черту в строках Python для вывода одного . Использование необработанных строк
r"like this one"
предотвращает синтаксический анализ обратных косых черт. В качестве альтернативы используйте / , который является рекомендуемым кроссплатформенным стандартом.4. Это происходит из-за использования базового имени. Использование относительного пути должно решить проблему.
5. Попробуйте использовать
os.path.relpath(folder, video_op)
вместоos.path.basename(folder)