pythonurllib/lib2在2.7和3.4之间的错误检查和转换

2024-10-01 09:38:20 发布

您现在位置:Python中文网/ 问答频道 /正文

以下代码在大多数情况下都可以正常工作,除非internet连接陷入困境,然后终止程序,并且没有完成整个程序。我如何开始做错误检查,这样我就可以上去,让它重新运行的html链接?同时,我也希望简化我的整个电脑,尽可能地简化所有的事情。我只想使用python3.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()

Tags: import程序pngos链接错误root事情
1条回答
网友
1楼 · 发布于 2024-10-01 09:38:20

至于你关于错误处理的主要问题,我在这个回答中没有完全提到,你能更具体地说“重新运行html链接吗?”我不太清楚你打算如何处理这个错误:你打算重新开始整个过程还是在最后一次成功的url检索时选择一个,或者别的什么

同时:

python3.4确实有一个urlretrieve,尽管根据docs,它在将来可能会被弃用。尝试使用:

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

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

urllib.request.urlopen()

一些旁注:

我不建议用大写字母命名变量。在python中,通常为类名和全局变量保留大小写。在python中,snake-u-case通常比camelCase更受欢迎

我也不建议删除Python2.7。您可能不再需要它,但许多应用程序仍在使用或需要它。删除它会给你带来比“简化你的电脑”更大的麻烦和头疼

相关问题 更多 >