我每6秒钟将值附加到一个日志文件中。每隔30秒,我就会将此日志作为文件传输到服务器。但是,我只想将收集的数据附加到服务器上的文件中,而不是传输整个文件。我一直无法弄清楚如何打开服务器文件,然后附加值。到目前为止,我的代码:
session = ftplib.FTP(authData[0],authData[1],authData[2]) session.cwd("//"+serverCatalog()+"//") # open server catalog file = open(fileName(),'rb') with open(fileName(), 'rb') as f: f = f.readlines() for line in f: collected = line # In some way open server file, write lines to it session.storbinary('STOR ' + fileName(), open(fileName(), 'a'), 1024) file.close() session.quit()
相反,我是否必须先下载并附加服务器文件,然后再将其发送回去?不要问为什么我不直接将记录的数据发送到数据库;)
以上是我的问题,以下为完整解决方案
session.cwd("//"+serverCatalog()+"//") # open server catalog localfile = open("logfile.txt",'rb') session.storbinary('APPE serverfile.txt', localfile) localfile.close()
尝试使用APPE代替STOR。资料来源:http : //www.gossamer- threads.com/lists/python/python/22960
APPE
STOR