存储数据时发生IO错误

7 投票
3 回答
12194 浏览
提问于 2025-04-16 13:34

我有一段Python代码,用来把数据存储到pickle文件里,但我遇到了输入输出错误(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 个回答

1

在我的情况下,问题出在我的当前目录上。

我添加了以下几行代码来把当前工作目录设置为我的脚本所在的目录。

希望这样能解决问题,前提是写入脚本目录不需要管理员权限。

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

我注意到在Python 3.4中,你可以这样做:
output = open(str(dataList), "wb")

10

我把绝对路径设置好了,结果成功了!!

output = open('/home/user/test/wsservice/data.pkl', 'wb')

撰写回答