我目前正在本地托管SimpleHTTPServer并将其cd到我的服务器文件夹中。我正在尝试使用afplay来播放当前位于服务器文件夹中的音频。这是我的代码:
import subprocess
import os
import urllib
import urllib2
urllib.urlretrieve('http://0.0.0.0:8000', r'Daybreak.mp3')
return_code = subprocess.call(["afplay", audio_file])
该文件位于服务器当前托管的文件夹中,我在终端中收到GET请求。这是我得到的错误:
File "<stdin>", line 1, in <module>
File "<string>", line 11, in <module>
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py", line 94, in urlretrieve
return _urlopener.retrieve(url, filename, reporthook, data)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py", line 244, in retrieve
tfp = open(filename, 'wb')
IOError: [Errno 13] Permission denied: 'Daybreak.mp3'
我不确定为什么拒绝权限,因为我对该文件夹有读写权限。
答案 0 :(得分:0)
您可能拥有该文件夹的读写权限。但是您没有在python脚本中指定访问凭据。 Python无法知道您是否获得授权。
您可能需要使用某种授权方法,例如HTTPPasswordMgrWithDefaultRealm()
。
serverUrl = "..."
ID = "..."
accessToken = "..."
p = urllib2.HTTPPasswordMgrWithDefaultRealm()
p.add_password(None, serverUrl, ID, accessToken)
handler = urllib2.HTTPBasicAuthHandler(p)
opener = urllib2.build_opener(handler)
urllib2.install_opener(opener)
req = urllib2.urlretrieve()