Python urllib / lib2错误检查&在2.7和3.4之间转换

时间:2016-07-14 23:11:28

标签: python urllib

以下代码大部分时间都能正常工作,除非互联网连接陷入困境,然后它会终止程序并且不会完成整个程序。我如何进行错误检查,以便我可以再次重新运行html链接?此外,我正在寻求简化我的整个计算机,尽可能地让所有东西都变得愚蠢。我只想使用python 3.4而不是2.7和3.4。现在,根据我当时运行的程序,有时我必须使用2.7和其他时间3.4。我不确定但是我想到了3.4我必须使用urllib2,如果我没记错的话,它没有urlretrieve命令...自从我完成任何编程以来已经有1.5到2年了所以我可以&记住当时我试图跳过的所有篮球但我确实记得那样的事情即将到来。我需要做什么才能将程序转换为3.4并使其正常工作,包括错误检查/再次重试相同的链接。

#!/usr/bin/python2.7

import urllib
import os
from Tkinter import *
import time

root = Tk()
root.title("aimages")
root.geometry("200x200")

app = Frame(root)
app.grid()

os.chdir('/home/me/images/')
Fileval = open('NextVal.txt','r')
Fileupdate = Fileval.read()
Fileval.close()
Fileupdate = int(Fileupdate)
Filewrite = Fileupdate+10000
Filewrite = str(Filewrite)
FileVal2 = open('NextVal.txt','w')
FileVal2.write(Filewrite)
FileVal2.close()
Filect = int(Fileupdate/10000)
Filect2 = str(Filect)+"9999"
Filecount = int(Filect2)
Fileupdate2 = Fileupdate
while Fileupdate <= Filecount:
    root.title(Fileupdate)
    url = 'http://www.website.com/images/'+str(Fileupdate)+'.png'
    urllib.urlretrieve(url,str(Fileupdate)+'.png')
    statinfo = os.stat(str(Fileupdate)+'.png')
    if statinfo.st_size<10000: 
        os.remove(str(Fileupdate)+'.png')

    Fileupdate = Fileupdate+1
    root.update_idletasks()

1 个答案:

答案 0 :(得分:0)

至于你在错误处理方面的主要问题,我在这个答案中没有完全解决,你能否更具体一点&#34;上去再次重新运行html链接?&#34;我不确定您打算如何处理错误:您是打算开始整个过程​​还是选择最后一次成功的URL检索,还是其他什么?

与此同时:

Python 3.4确实有一个urlretrieve,但根据docs,它可能会在将来被弃用。尝试使用:

import urllib.request
urllib.request.urlretrieve(url, str(Fileupdate) + '.png')

根据我的经验,根据您的具体操作,我也会尝试使用:

urllib.request.urlopen()

一些旁注:

我不建议使用大写字母命名变量。资本化通常保留给python中的类名和GLOBAL_VARAIBLES。此外,snake_case通常比python中的camelCase更受欢迎。

另外我不建议删除python 2.7。您可能不再需要/想要它,但许多应用程序仍然使用或需要它。删除它将导致您的麻烦和麻烦远远超过它的价值和简化您的计算机。&#34;