ftp不传输完整文件

时间:2018-03-16 07:42:57

标签: python ftp

我有以下代码将文件传输到另一台Linux机器:

import ftplib
session = ftplib.FTP('192.168.1.111','ubuntu','ubuntu')
file = open('/home/nehal/darknet/yolo.weights','rb')                  # file to send
print(session.pwd())
print(ftplib.FTP.dir(session))
session.storbinary('STOR /home/ubuntu/yolo.weights',file)                  #send the file
file.close()
session.quit()


文件yolo.weights为209MB,只传输了几个MB。

我也试过传输一个30MB的文件,但只有几MB被转移,之后似乎没有传输数据。
可能是什么问题?

1 个答案:

答案 0 :(得分:1)

使用STOR时,您应该只传递文件名而不传递路径。因此,为确保文件最终位于正确的位置,请使用.cwd()首先指定目标目录:

import ftplib

session = ftplib.FTP('192.168.1.111','ubuntu','ubuntu')
file = open('/home/nehal/darknet/yolo.weights','rb')                  # file to send
print(session.pwd())
print(ftplib.FTP.dir(session))

session.cwd('/home/ubunto')
session.storbinary('STOR yolo.weights',file)                  #send the file

file.close()
session.quit()    

或者你可以尝试如下:

import ftplib

session = ftplib.FTP('192.168.1.111', 'ubuntu', 'ubuntu')
file = open('/home/nehal/darknet/yolo.weights', 'rb')

with session, file:
    print(session.pwd())
    print(ftplib.FTP.dir(session))
    session.cwd('/home/ubunto')
    session.storbinary('STOR yolo.weights', file)