我正在使用python 3.4.2将日志文件上传到ftp服务器(为了简单起见,我删除了try和with语句):
import ftplib
ftp = ftplib.FTP(url)
ftp.login(name, password)
ftp.storlines("STOR " + "mylog.log", open("log/mylog.log"))
ftp.close()
mylog.log文件有一个“text / plain; charset = us-ascii”编码。 在我的macbook上一切正常。当我在覆盆子pi(通过ssh)上执行我的小程序时,我收到以下错误消息:
Traceback (most recent call last):
File "./ftptest.py", line 7, in <module>
ftp.storlines("STOR " + "mylog.log", open("log/mylog.log"))
File "/usr/lib/python3.4/ftplib.py", line 537, in storlines
if buf[-1] in B_CRLF: buf = buf[:-1]
TypeError: Type str doesn't support the buffer API
我猜这是一些编码和/或本地设置问题。我究竟做错了什么?这里的最佳做法是什么?
答案 0 :(得分:1)
从我对http://bugs.python.org/issue6822的阅读中,我认为对于Python 3.x,您需要open("log/mylog.log", "rb")
。