Ошибка ввода-вывода при сохранении данных в рассоле - PullRequest
5 голосов
/ 12 марта 2011

У меня есть следующий код в Python для хранения данных в рассоле, но я получаю IO Error

[Errno 13] Permission denied: 'data.pkl'

код

def SaveUserData(request):
       datalist={}
       datalist['empid']='127113'
       datalist['empname']='eric'
       datalist['empphone']='66335500'
       datalist['email']='eric.pk@moliba.com'
       output = open('data.pkl', 'wb')
       pickle.dump(datalist, output)
       output.close()
       data = simplejson.dumps(datalist, indent=4)
       return HttpResponse(data,mimetype='application/javascript')

Ответы [ 3 ]

6 голосов
/ 12 марта 2011

Ну, я назначил абсолютный путь, и это сработало !!

output = open('/home/user/test/wsservice/data.pkl', 'wb')
1 голос
/ 30 ноября 2014

В моем случае это была проблема с моим текущим каталогом.

Я добавил следующие строки, чтобы установить текущий рабочий каталог в мой каталог скриптов.

Надеюсь, это решит проблемупри записи в каталог скриптов не требуются права администратора.

import sys, os

def getScriptPath():
    return os.path.dirname(os.path.realpath(sys.argv[0]))

print 'Current working directory : ', os.getcwd()
os.chdir(getScriptPath())
print 'Changed working directory : ', os.getcwd()
1 голос
/ 07 августа 2014

Я заметил, что в Python 3.4 это можно сделать так:
output = open(str(dataList), "wb")

...