在 Python 中将数据附加到 FTP 服务器上的文件

2022-01-09 00:00:00 python append ftp ftplib

问题描述

我每 6 秒将值附加到日志文件中.每 30 秒,我将此日志作为文件传输到 FTP 服务器.但不是传输整个文件,我只想将收集到的数据附加到我服务器上的文件中.我无法弄清楚如何打开服务器文件然后附加值.

I'm appending values to a log file every 6th second. Every 30 sec I'm transferring this log to an FTP server as a file. But instead of transfering the whole file, I just want to append the collected data to the file on my server. I haven't been able to figure out how to open the server file and then append the values.

到目前为止我的代码:

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()

相反,我是否必须下载打开并附加的服务器文件,然后将其发回?

Instead, do I have to download the server file open and append, then send it back?

以上是我的问题,完整的解决方案如下:

Above was my question, the full solution is below:

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 (链接到 web.archive.org)

相关文章