问题1:自己编写的python脚本中,将处理后的音频文件保存到指定的文件夹(用到了pydub库对音频文件进行处理),但保存处理后的文件到指定文件夹时,会报错permission denied 的错误,如下截图

python 保存到其他服务器的共享目录_文件保存

解决思路:一开始网上查资料,基本上都是说文件夹没有读写权限,让设置文件夹权限等操作,但设置了之后还是会报错。后来觉着可能是创建文件夹的方法没有指定创建的文件夹权限,但看了一下 os.makedirs 这个方法,默认的mode=0o777,即默认权限全开。所以也不是这个问题。

python 保存到其他服务器的共享目录_文件名_02

 后面发现保存音频文件的export方法的参数好像写的不对,如下图所示,export 方法中传参的是文件夹路径和指定的文件格式。但看了一下export方法,发现out_f这个参数指定的是path to destination audio file ,所以不应该传文件夹的路径,而是要保存的文件路径,即export 的out_f 参数值为:文件夹后面要拼接个音频文件名称,

python 保存到其他服务器的共享目录_创建文件夹_03

python 保存到其他服务器的共享目录_文件名_04

export 方法修改后如下,chunk_name 参数即为文件名。 按照如下方式执行后, 处理后的音频文件就可以保存到指定的文件夹下面了。

python 保存到其他服务器的共享目录_文件保存_05

 

问题2:问题1解决了音频文件保存不到文件夹中的问题,但虽然按照上述方式可以将处理后的音频文件成功保存了,但脚本执行结束后,依然会报错 permissionerror 的问题

解决方法:问题2确实搞不懂为什么还是会报错,文件都保存到文件夹里了,还保存此文件夹没有权限的问题。但想了一下我的功能确实都实现了,无论报错不报错,对我都没有影响了,那我直接忽略这个报错就可以了。所以我就用了个 try except 方法,对permissionerror 的报错进行忽略的操作。如下图所示代码,捕捉到PermissionError 时候,直接pass 就可以了。

python 保存到其他服务器的共享目录_文件保存_06

 如下图,最后的执行效果。

python 保存到其他服务器的共享目录_文件名_07

知识总结:以上涉及到了文件夹创建的知识,这里总结一下python 创建文件夹的知识,如下图xmind

python 保存到其他服务器的共享目录_文件保存_08