前几天用python写了个ftp上传文件,自己写文件,再上传至ftp指定目录,结果上传文件总是为空,一直以为是上传步骤错了,最后发现是写文件错了。。
ftp上传文件用的是:
fp = open(filename, 'rb')
ftp.storbinary('STOR %s' % os.path.basename(filename), fp, 1024)
而写文件用的是 :
fl = open('tmp/%s' % filename, 'w')
写入的时候用的 一般写入, 而读文件的使用用的 二进制读,导致上传至ftp的文件内容为空,具体原理还是不知道为啥。。。
代码:
fl = open(filename, 'wb')
fl.write(content)
fl.close()
ftp = FTP()
ftp.set_pasv(pasv)
ftp.connect(ip, int(port))
ftp.login(user, passwd)
fp = open(filename, 'rb')
ftp.storbinary('STOR %s' % os.path.basename(filename), fp, 1024)
fp.close()
ftp.close()