python - 使用 pydub 时访问被拒绝
问题描述
我想使用此脚本将 mp3 文件转换为 wav 文件。
import pydub
from pydub import AudioSegment
pydub.AudioSegment.converter=r"C:\Users\sunha\ffmpeg-4.1-win64-static\bin"
sound = AudioSegment.from_mp3("筷子兄弟 - 小苹果.mp3")
sound.export("筷子兄弟 - 小苹果.wav", format="wav")
但问题是我的访问被拒绝。
Traceback (most recent call last):
File "<ipython-input-1-5faa7bcb6b97>", line 1, in <module>
runfile('C:/Users/sunha/project-001/untitled1.py', wdir='C:/Users/sunha/project-001')
File "E:\program\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 786, in runfile
execfile(filename, namespace)
File "E:\program\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "C:/Users/sunha/project-001/untitled1.py", line 4, in <module>
sound = AudioSegment.from_mp3("筷子兄弟 - 小苹果.mp3")
File "E:\program\lib\site-packages\pydub\audio_segment.py", line 716, in from_mp3
return cls.from_file(file, 'mp3', parameters=parameters)
File "E:\program\lib\site-packages\pydub\audio_segment.py", line 697, in from_file
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
File "E:\program\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 143, in __init__
super(SubprocessPopen, self).__init__(*args, **kwargs)
File "E:\program\lib\subprocess.py", line 775, in __init__
restore_signals, start_new_session)
File "E:\program\lib\subprocess.py", line 1178, in _execute_child
startupinfo)
PermissionError: [WinError 5] 拒绝访问。
我怎么可能解决这个问题?
解决方案
我尝试了多种解决方案,这对我有帮助,如下所示:
- 重新启动计算机和/或 IDE,
- 更新 Python、IDE、计算机、
- pip install pydirectory(命令/Anaconda 提示符,以管理员身份运行)
- 对文件应用读取权限,
- 指定文件的路径,并在路径前添加“r”,表示您要“读取”音频文件,例如底部。
我希望这可以帮助您或至少其他遇到此错误的人。
祝你好运。
例如,在与音频文件相同的文件夹中运行:
from pydub import AudioSegment
import os
os.chmod('audio2.mp3', 777) #You might not need this
sound = AudioSegment.from_mp3(r"D:/audio.mp3")
#Put the 'r' in front of the filepath, to 'read' the audio file.
sound.export("audio.wav", format="wav")
推荐阅读
- react-native - 简单的 React Native Button 不运行函数 onPress
- reactjs - 赛普拉斯错误“自动化客户端已断开连接。无法继续运行测试。” 在 Docker 中运行时
- c# - 为什么我需要构建我的 C# 项目(引用 F# 项目)两次才能正常工作?
- html - 当我将绝对位置应用于光滑箭头主图像时,ionic4 .in 滑块中的光滑滑块出现问题
- variables - 如何在不需要从控制器传递值的情况下制作存储过程变量?
- sql-server - 使用数据透视函数排序数据并选择辅助表上的特定列
- hive - 在 presto cli 中执行删除查询后,选择查询有什么问题吗?
- c++ - 当向量增长时,指向向量元素的 C++ 指针是否会变得无效?
- ubuntu - 无法在 ubuntu 18.04 中为 rvm 安装 libssl-dev
- macos - Safari:为什么再次下载相同的文件后会自动替换下载的文件?