将数据附加到 Python 中 FTP 服务器上的文件
Append data to file on FTP server in Python
我每 6 秒将值附加到日志文件中。每 30 秒我将此日志作为文件传输到 FTP 服务器。但是我不想传输整个文件,而是想将收集到的数据附加到我服务器上的文件中。我一直无法弄清楚如何打开服务器文件然后附加值。
到目前为止我的代码:
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 (link 至 web.archive.org)
我每 6 秒将值附加到日志文件中。每 30 秒我将此日志作为文件传输到 FTP 服务器。但是我不想传输整个文件,而是想将收集到的数据附加到我服务器上的文件中。我一直无法弄清楚如何打开服务器文件然后附加值。
到目前为止我的代码:
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 (link 至 web.archive.org)