在以管理员身份在Python IDLE中运行脚本时,为什么会出现拒绝权限错误?

时间:2019-05-09 21:52:58

标签: python windows web-scraping permissions user-permissions

我有一个Web抓取脚本,否则它可以100%运行。它指向一个网站,存储属性,分页,并且应该存储用于ConvNet处理的图像,但是我收到一个“ PermissionError:[Errno 13] Permission拒绝[目录]”-当我注释掉时脚本的图像存储部分,其他所有工作都很好。

我尝试将open(目录,'wb')更改为urllib.request.urlopne(url)作为响应,open(目录,''wb'),但是当然权限问题没有解决。 / p>

我已经以admin身份在CMD中运行了该程序,我已经以admin身份通过Python IDLE直接运行了该程序,并授予了我自己(以用户身份运行)以及对NETWORK SERVICES和LOCAL SERVICE的许可存储驱动器的根目录,但我仍然收到权限拒绝错误。

我观察到的一些独特行为;它会创建一个应在其中存储图像的文件夹,并引发拒绝权限错误。创建文件夹的级别即为图像所在的位置。该文件夹采用图像的名称。为了消除变量,我尝试输入一个静态字符串作为文件名,但仍然获得拒绝权限。例如,当该文件夹应为.jpg格式的检索图像时,该文件夹名为“ EFake.jpg”。我一直在寻找解决这个问题的方法,我觉得我已经尝试了所有方法,如果我没发现明显的问题,我们深表歉意。

入口点:

  if items.get('reference_number'):
            download_img_to_disk(brand, listing_url_retrieve_id, items['entry_logo'], items.get('reference_number'))
        else:
            download_img_to_disk(brand, listing_url_retrieve_id, items['entry_logo'])

#The function: 

def download_img_to_disk(brand, name, url, reference_number='uncatogrized'):
    resp = requests.get(url)
    directory = "Z:\Storage\\"+str(brand)+"\\"+str(reference_number)+"\\"+name+'.jpg'
    if not os.path.exists(directory):
        os.makedirs(directory)
    with urllib.request.urlopen(url) as response, open(directory, 'wb') as out_file:
        data = response.read()
        out_file.write(data)
    return "File Downloaded.."

我希望“ Z:\ Storage \” + str(brand)+“ \” + str(reference_number)+“ \” + name +'。jpg'是实际存储的.jpg,但这是一个名为name +的文件夹“ .jpg”,我同时收到“ PermissionError:[Errno 13]权限被拒绝的[目录]”错误消息。我觉得数据类型是错误的,应该存储.jpg的级别是错误的……我只是想不通。

0 个答案:

没有答案