[問題] FTP一直斷線
各位好,
在下是Python新手
這是我第一支用Python做的程式,還在學中
因為想要連結FTP上的資料直接跟我Local端的一個資料夾位址Mapping
若Local沒有該檔案就直接下載並用7-zip解壓縮
但非常苦惱FTP一直斷線就不下載了
想要用try,except讓他重新連結在下載他也不會進去迴圈
卡這個問題已經卡了兩個禮拜 也很認真在找GOOGLE上的資源
可能有些地方因為不太懂,自己程式也不夠強.無法活用在自己的程式上
也有根據網路上的一些意見修改主動模式與被動模式
但兩種都會斷線
只是ftp.set_pasv(1)似乎比ftp.set_pasv(0)可以撐得比較久
希望能找到好方法可以順利重新續傳也可以學習到新東西
我已經想不到該怎麼辦去動哪個部分了....T_T
謝謝各位費心看完~~
==========================程式碼如下==================
from ftplib import FTP
import os
import zipfile
import subprocess
import time
ftp=FTP('FTP位址','帳號','密碼')
dirs="FTP想連結的資料夾位址"
ftp.cwd(dirs)
ftp.set_pasv(1)
filenames = []
ftp.retrlines('NLST', filenames.append)
print (filenames)
a=0
for filename in filenames:
if os.path.exists('C:\\test\\' + filename):
try:
lsize= os.path.getsize('C:\\test\\' + filename)
if lsize==0:
local_filename = os.path.join('C:\\','test', filename)
file = open(local_filename, 'wb')
try:
ftp.retrbinary('RETR '+ filename, file.write)
except ftplib.all_errors:
print ('Error FTP Connect')
ftp.close()
ftp=FTP('FTP位址','帳號','密碼')
dirs="FTP想連結的資料夾位址"
ftp.cwd(dirs)
ftp.set_pasv(1)
filenames = []
ftp.retrlines('NLST', filenames.append)
a=a+1
file.close()
print(filename+' download data OK')
cmd1='"C:\\Program Files\\7-Zip\\7z"' " e -y " "C:\\test\\"+filename+ " -o""C:\\test_rar"
unzip_file=os.system(cmd1)
else:
print (filename+' already download before ',lsize )
except ValueError:
print (filename+' Error')
time.sleep(3)
traceback.prin_exc
else:
try:
local_filename = os.path.join('C:\\','test', filename)
file = open(local_filename, 'wb')
ftp.retrbinary('RETR '+ filename, file.write)
file.close()
cmd1='"C:\\Program Files\\7-Zip\\7z"' " e -y " "C:\\test\\"+filename+ " -o""C:\\test_rar"
unzip_file2=os.system(cmd1)
print(filename+' Unzip data OK')
except ValueError:
print (filename+' Error')
time.sleep(3)
traceback.prin_exc
ftp.close()
print (a)
=================程式碼結束================
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 106.187.126.4