python3里面write 给open函数添加了encoding新参数,默认‘utf-8',因此文件句柄write和read要求传入的是Unicode字符实例,二不接收二进制byte实例,而retrbinary()的write写入方式必须是二进制byte实例,所以文件句柄fp=open(local_file,'wb'), ftp.retrbinary('RETR'+each,fp.write,bufsize)
如python2里可以用’w',不会报错:
with open('/home/tom.bin','w') as f:
f.write(os.urandom(10))
而python3需写成(python2也可):
with open('/home/tom.bin','wb') as f:
f.write(os.urandom(10))