2014-02-19 4 views
0

Я в настоящее время размещаю SimpleHTTPServer локально и имею cd'd его в свою папку с сервером. Я пытаюсь использовать afplay, чтобы заставить его воспроизводить аудио, которое в настоящее время находится в папке сервера. Это мой код:Невозможно прочитать файл с помощью urllib

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

Возможно, у вас есть доступ на чтение и запись в папку. Но вы не указываете свои учетные данные доступа в скрипте 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() 
Смежные вопросы