我的程序中Python ftplib的例外情况?

时间:2016-04-14 17:25:36

标签: python

我写这个程序是从网站目录上的文本文件中绘制数据(由网站上的用户编辑),但它似乎崩溃了。很多。

from sys import argv
import ftplib
import serial
from time import sleep

one = "0"
repeat = True

ser = serial.Serial("COM3", 9600)

while repeat == True:
     path = 'public_html/'
     filename = 'fileone.txt'
     ftp = ftplib.FTP("*omitted*")
     ftp.login("*omitted*", "*omitted*")
     ftp.cwd(path)
     ftp.retrbinary("RETR " + filename ,open(filename, 'wb').write)
     ftp.quit()

     txt = open(filename)

     openup = txt.read()

     ser.write(openup)
     print(openup)

有谁知道任何阻止它崩溃的方法?我在考虑使用异常,但我不是Python专家。顺便说一句,该程序执行它的意图,并且由于显而易见的原因省略了地址和登录。另外,如果可能的话,我会要求一个例外,以便在断开与串口的连接时停止程序崩溃。

提前致谢!

1 个答案:

答案 0 :(得分:1)

两件事:

  1. 您可能希望将所有与ftplib相关的代码放在try-except块中,如下所示:
  2. try:
        #code related to ftplib
    except Exception, e:  #you can fill this in after you encounter the exception once
        print str(e)

    1. 您似乎正在打开文件,但在完成后不会关闭它。这可能也会在以后导致错误。最好的方法是:
    2. with open(filename, 'r') as txt:
          openup = txt.read()
      这样,一旦你在'with'区域之外,文件将自动关闭。