私は、Webサイトをスクラップし、見つかったときにファイルをダウンロードするプログラムを持っています。多くの場合、それは正常に動作しますが、シーケンスの検索が終了する前に、プログラムの動作を終了させる場合もあります。私は困惑している。検索中にのみダウンロード中は終了しません。私は現在、ソケットエラーの問題を推測していますが、上記のように私は困惑しています。私はhttperrorチェックを入れて、何もHTTPエラーコードのために表示されません。私は今ソケットエラーチェックを挿入しようとしているし、それはさらに狂った取得します。ソケットエラーチェックのために何かを追加する前に、正常に動作します。一度ソケットエラーをチェックすると、プログラムは実行されません。これは、IDLEディスプレイを表示し、IDLEが次のコマンドを待っているのと同じように、カーソルを表示します。それ以外の場合、ソケットのエラーチェックを行わずに、tkinterウィンドウがシャットダウンする(errプログラムが予期せず終了する)までプログラムが実行されていることを示します。 tkinterウィンドウがシャットダウンしても、IDLEのエラーは発生しません。Pythonプログラムが予期せず終了する
なぜこのプログラムが早期に終了していて、それをトラップできるので、終了せずに戻って同じWebアドレスをもう一度やり直すべきかを知るためには何が必要ですか?私は同じWebアドレスの世話をして再実行したと思いますが、ソケットエラーの問題があっても、ソケットエラー処理は正しくありません。私は困惑している。私は問題はTkinterのに起因していると思い
#!/usr/bin/python3.4
import urllib.request
import os
from tkinter import *
import time
import urllib.error
import errno
root = Tk()
root.title("photodownloader")
root.geometry("200x200")
app = Frame(root)
app.grid()
os.chdir('/home/someone/somewhere/')
Fileupdate = 10000
Filecount = 19999
while Fileupdate <= Filecount:
try:
root.title(Fileupdate)
url = 'http://www.webpage.com/photos/'+str(Fileupdate)+'.jpg'
a = urllib.request.urlopen(url)
urllib.request.urlretrieve(url, str(Fileupdate)+'.jpg')
except urllib.error.HTTPError as err:
if err.code == 404:
Fileupdate = Fileupdate + 1
root.update_idletasks()
continue
else:
print(err.code)
Fileupdate = Fileupdate + 1
root.update_idletasks()
continue
except socket.error, v:
print(Fileupdate, v[0])
continue
Fileupdate = Fileupdate+1
root.update_idletasks()
で終わる置き換えチャンクが続く
#-
と変更された行を示していますstacktraceでのエラーメッセージエラーがなければ、どうすればあなたを助けることができますか? –@MoinuddinQuadri "tkinterウィンドウがシャットダウンした場合、IDLE **にエラーは発生しません。"持っているべき誤りはなかった。 –
この問題はtkinterが 'mainloop()'を起動していないことが原因であると考えています。関数の中で 'while'ループの中にコードを置き、' root.after 'メソッド。 –