【发布时间】:2019-05-02 20:02:04
【问题描述】:
我下面的代码遍历列表中的每个 .m4v 文件,并使用 FFmpeg 将它们转换为 .wav 文件,并且可以正常工作。我使用python 3 jupyter环境。
for fpath in list:
if (fpath.endswith(".m4v")):
cdir=os.path.dirname(fpath)
os.chdir(cdir)
filename=os.path.basename(fpath)
os.system("ffmpeg -i {0} temp_name.wav".format(filename))
ofnamepath=os.path.splitext(fpath)[0]
temp_name=os.path.join(cdir, "temp_name.wav")
new_name = os.path.join(ofnamepath+'.wav')
os.rename(temp_name,new_name)
old_name=os.path.join(ofnamepath+'.m4v')
os.remove(old_name)
但是,对于这个特定的数据集,我收到以下错误;
> UnicodeEncodeError Traceback (most recent call
> last) <ipython-input-10-bd3b17e409fa> in <module>()
>
>
> > 7 os.chdir(cdir)
> > 8 filename=os.path.basename(fpath)
> > ----> 9 os.system("ffmpeg -i {0} temp_name.wav".format(filename))
> > 10 ofnamepath=os.path.splitext(fpath)[0]
> > 11 temp_name=os.path.join(cdir, "temp_name.wav")
>
> UnicodeEncodeError: 'ascii' codec can't encode characters in position
> 10-16: ordinal not in range(128)
是否可以在代码中添加 if 注释行,例如;
if 'UnicodeEncodeError: 'ascii' codec can't encode'
删除该文件并继续下一个文件?
【问题讨论】:
-
为什么要删除文件?你不能只捕获异常并且在处理程序中什么都不做吗?
-
谢谢。我不必删除文件。我只是不知道如何捕获异常并且在处理程序中什么都不做。我的python背景不是那么强。
标签: python-3.x