私はpythonにかなり慣れていません...
import sys, os, time, py4chan, urllib from urllib2 import urlopen, URLError, HTTPError
def refreshthread(boardin,no):
global thread
global topic
board = py4chan.Board(boardin)
thread = board.getThread(int(no))
topic = thread.topic
time.sleep(2.5)
def dlfile(url, folder):
try:
f = urlopen(url)
with open(folder + "/" + os.path.basename(url), "wb") as local_file:
local_file.write(f.read())
print "Downloaded to " + str(folder + "/" + os.path.basename(url))
except HTTPError, e:
print "HTTP Error:", e.code, url
except URLError, e:
print "URL Error:", e.reason, url
def getsize(uri):
file = urllib.urlopen(uri)
size = file.headers.get("content-length")
file.close()
return str(int(size) / 1024)
def main():
boardtag = str(raw_input("Board: "))
threadno = int(raw_input("Thread id: "))
folder = str(raw_input("Save to folder: "))
print "Getting thread information..."
refreshthread(boardtag,threadno)
print "Subject: " + topic.Subject
while(True):
if not os.path.exists(folder): os.makedirs(folder)
refreshthread(boardtag,threadno)
for imgurl in thread.Files():
if imgurl is not None and not os.path.exists(folder + "/" + os.path.basename(imgurl)):
print "A wild image appears! " + "(" + getsize(imgurl) + "kb)"
dlfile(imgurl,folder)
else:
pass
if __name__ == '__main__':
main()
これを Linux でコーディングしたところ、問題なく動作しましたが、これを Windows で実行すると、次のエラーが発生します。
TypeError: __init__() takes exactly 4 arguments (2 given)
initを定義していないので、これは非常に奇妙です。これは別のモジュールからの初期化でしょうか?
他のスクリプトをコーディングすると、py4chan モジュールは正常に動作するようです。両方のマシンの python バージョンも同じです。
編集(完全なエラー):
Getting thread information...
Traceback (most recent call last):
File "4chan.py", line 59, in <module>
main()
File "4chan.py", line 46, in main
refreshthread(boardtag,threadno)
File "4chan.py", line 15, in refreshthread
board = py4chan.Board(boardin)
TypeError: __init__() takes exactly 4 arguments (2 given)
*編集: *さて、同じ名前の 2 つの異なるモジュールがありました。すべてが機能しています。私はこのウェブサイトで許可されるべきではありません。