使用Python3.4 urllib.request下载大量图像时,是什么导致win出现蓝屏

使用Python3.4 urllib.request下载大量图像时,是什么导致win出现蓝屏,python,image,download,urllib,large-data,Python,Image,Download,Urllib,Large Data,我试图从预先构建的数据库中的一个表中下载大量基于3列的图像。我检索到的三列是imageId、imageName和imageUrl。相同的imageId始终对应于相同的imageName,但相同的imageId iamgeName对可能对应于多个图像URL(参见下面的示例)。我的目标是下载所有这些图像,并使用相同的imageId imageName对文件夹保存多个图像。例如,下表将创建三个名为“1_flower”(包括两幅图像)“2_bowl”(包括一幅图像)和10_sky(包括一幅图像)的文件夹

我试图从预先构建的数据库中的一个表中下载大量基于3列的图像。我检索到的三列是imageId、imageName和imageUrl。相同的imageId始终对应于相同的imageName,但相同的imageId iamgeName对可能对应于多个图像URL(参见下面的示例)。我的目标是下载所有这些图像,并使用相同的imageId imageName对文件夹保存多个图像。例如,下表将创建三个名为“1_flower”(包括两幅图像)“2_bowl”(包括一幅图像)和10_sky(包括一幅图像)的文件夹。实际数据库大约有58000行(即图像)

问题是,在中间运行代码导致Windows突然变成“强”>蓝色屏幕,消息“IQL不小于或等于”< /强>。我已经尝试过多次运行程序,它总是在运行期间导致蓝色屏幕(在每次运行时略有不同的时间段)(仅在大约100个图像之后下载)。p> 我做了很多搜索,但运气不好。似乎对urllib.request.urlretrieve引起的一些内存问题太过敏感,但不确定到底哪里出错了。非常感谢您的帮助

imageId, imageName, imageUrl
============================

 - 1,        flower,      /xxx/flowerPicOne.jpg
 - 2,        bowl,     /xxx/bowPic.jpg
 - 1,        flower,      /xxx/flowerPicTwo.png
 - 10,       sky,         /xxx/skyPic.jpg
 - ...
 - ...


我根据您使用Windows 7的图像看到,因此您可能需要为Windows 7获取一份更新的ntoskrnl.exe副本,并将其放在原来的位置

问题可能是内存故障,导致IRQL不小于或等于,或者是代码或程序出现问题

因此,要么程序有一些导致蓝屏的bug,要么需要安装ntoskrnl。但您可能需要具体说明ntosknrl是哪一个,因为例如,您可能意外安装了Windows 2000或Windows XP NtosknLL,这可能会使电脑出错。因此,请尝试搜索“Windows 7 ntosknrl下载”,然后用该副本替换您的ntosknrl。您使用的Windows 7版本的NTOSKRNL可能并不重要。这可能是一个最终的ntosknrl,被家庭溢价所取代。我并不是因为没有Windows7而尝试过。但在一段YouTube视频中,WindowsXP确实发生过一次,我收到的IRQL不少于或等于。但那是几年前的事了,那时我对计算机知之甚少

如果ntoskrnl idea失败,程序可能需要重新安装


…你知道吗,我甚至不认为Windows版本中的ntoskrnl有什么区别。我相信有,所以为了安全起见,搜索Windows 7 ntoskrnl。

很可能这不是你的程序。您需要从崩溃中获得完整的细节——很有可能是一个行为不好的设备驱动程序。@Joe谢谢!你的意思是我电脑上的一些硬件设备或驱动程序相关问题是原因吗?我将重复这个问题,并添加一张bluescreen@plg519乔提出的有趣建议。您能否尝试在不同的开发环境中实现相同的程序以排除该程序是原因?…或者不管文件名是什么,ntoskrnl可能错了。非常感谢您回答我4年前的问题!马里奥。我已经改用mac,这个问题不再紧迫,但仍然感谢你的回答,并希望它能对其他人有益:)我很高兴能收到你的来信,并能帮助你解决问题。还有一些人在Mac电脑上也有问题!一个YouTube的家伙可以刻录空白DVD,但不能刻录有文件的DVD。其他人则会遇到悲伤的Mac电脑,这是一种类似于Windows蓝屏的错误,但它是黑色的,带有16个数字(或更多/更少)的死机图标,类似于停止码(错误码)。Mac不使用IRQL_NOT_LESS_或与Windows相同的停止码。我妈妈的Mac电脑也差点被一个假冒的杀毒软件感染。最好小心你访问的网站;Windows或Macintosh-MarioGamerExpt
import sqlite3
import os
import urllib.request

conn = sqlite3.connect("myDatabase.db")
c = conn.cursor()

c.execute('SELECT imageId, imageName, imageUrl FROM imageTable')
rows = c.fetchall()
existingFolderNameList = []

for row in rows:
    folderName = str(row[0]) + '_' + row[1].replace(" ", "").replace("/","-").replace("'","")
    imUrl = "http://www.someCommonHeader.com/" + row[2].replace(" ", "")
    if folderName not in existingFolderNameList:
        os.makedirs(folderName)
        urllib.request.urlretrieve(imUrl, folderName + "/" + row[2].replace(" ", "").replace("/","-"))
        existingFolderNameList.append(folderName)
    else:
        urllib.request.urlretrieve(imUrl, folderName + "/" + row[2].replace(" ", "").replace("/","-"))

# Save (commit) the changes
conn.commit()

# Close connection
conn.close()