#python #moviepy
Вопрос:
Эту проблему я несколько решил с помощью очень непрактичной повязки :
Я попытался сделать короткий фрагмент кода для преобразования папки с файлами mp4 в mp3. Попробовав несколько решений, найденных здесь, но безрезультатно, я сам создал код, старался быть как можно более простым, и это почти работает. Я использовал os.listdir, чтобы составить список строк, которые являются именами файлов с .mp4, а затем пролистать список, чтобы преобразовать их в строки с .mp3 в конце.
import moviepy.editor as mp
import os
# original working code for one file at a time :
# video = mp.VideoFileClip(r"input.mp4")
# video.audio.write_audiofile(r"output.mp3")
path = "C:\UsersAlexDesktopProgrammesmp4mp3mp4"
liste_final = []
print(os.listdir(path))
liste_test = os.listdir(path)
for i in liste_test:
liste_final.append(i.replace('4', '3'))
for f, b in zip(liste_test, liste_final):
print(f, b)
video = mp.VideoFileClip(f)
video.audio.write_audiofile(b)
Однако код не может найти файлы mp4, если я на самом деле не помещу их в ту же папку, что и файл .py (папка mp3mp4), и во вложенную папку (с именем mp4), где я обычно должен хранить музыку.
Для ясности приведем ms paint со случаем 1, в котором он работает, и случаем 2 с сообщением об ошибке.
Дополнительная информация : Я на Windows 10 с кодом VS, у меня 64-разрядный python 3.9.5 в качестве интерпретатора.
Сообщение об ошибке :
['Challengers.mp4', 'genos2.mp4']
Challengers.mp4 Challengers.mp3
Traceback (most recent call last):
File "c:UsersAlexDesktopProgrammesmp4mp3full.py", line 23, in <module>
video = mp.VideoFileClip(f)
File "C:UsersAlexDesktopProgrammesPythonlibsite-packagesmoviepyvideoioVideoFileClip.py", line 88, in __init__
self.reader = FFMPEG_VideoReader(filename, pix_fmt=pix_fmt,
File "C:UsersAlexDesktopProgrammesPythonlibsite-packagesmoviepyvideoioffmpeg_reader.py", line 35, in __init__
infos = ffmpeg_parse_infos(filename, print_infos, check_duration,
File "C:UsersAlexDesktopProgrammesPythonlibsite-packagesmoviepyvideoioffmpeg_reader.py", line 270, in ffmpeg_parse_infos
raise IOError(("MoviePy error: the file %s could not be found!n"
OSError: MoviePy error: the file Challengers.mp4 could not be found!
Please check that you entered the correct path.
PS C:UsersAlexDesktopProgrammesmp4mp3>
Заранее спасибо, я чувствую, что ответ близок и невелик, но я не могу понять его.