我正在使用此代碼從我的Windows機器上傳myfile.txt到FTP服務器。在upoad腳本刪除我的本地機器上的文件(我沒有刪除它在FTP上)。Python的ftplib STOR可靠嗎?
try:
ftp = FTP(ftp.host.com)
ftp.login(your_username, your_password)
file = open(myfile.txt, "rb")
ftp.storbinary('STOR myfile.txt', file)
print 'STORing File now...'
ftp.quit()
file.close()
subprocess.Popen('del myfile.txt', shell=True)
print 'File deleted'
except all_errors:
print 'An error occured'
此代碼運行,但它不可靠!在每次〜10次上傳時,我的腳本在存儲文件時掛起。
print 'STORing File now...' # So I just get 'STORING File now...'
的文件不是很大,應該在幾秒鐘內被上傳,但我往往要等一兩個小時,然後才引發異常:
print 'An error occured'
如果該異常是拋出「較早」,這將是很好的,所以我可以重新開始上傳(例如在一個while循環中)。因爲我需要儘快上傳這個文件,所以我需要更快地上傳文件(我不想等待拋出異常這麼長時間)
第二個問題:有時發生這種情況:文件已成功上傳,該腳本無法刪除我的本地計算機上的文件,因爲'其他進程已經訪問它'< - 我認爲ftplib沒有'發佈'該文件。我能做些什麼來防止這種情況發生?
我正在尋找更好/可靠的簡單文件上傳解決方案。任何人有想法? 謝謝!
我應該使用windows的ftp.exe(使用子進程調用)執行整個文件上傳嗎? – creativz 2010-01-13 17:02:59