无法使用python 2.6通过FTP发送文件

时间:2015-10-06 13:12:21

标签: python ftp ftp-client

我尝试了以下代码,并改变了所有可能的方式,如

storbinary storlines r rb rb + 但是即使没有运气将文件传输到服务器。这是我的示例代码:

    from ftplib import FTP
    ftpfile = FTP('hostname')
    print "Connected with server"
    ftpfile.cwd('path of server where file need to store')
    print "Reached to target directory"
    myFile = open(inputfile, 'rb+')
    ftpfile.storbinary('STOR ' +inputfile, myFile)
    print "transferring file..."
    myFile.close()
    print "file closed"
    ftpfile.quit()
    print "File transferred"

代码只是运行并输出所有的print语句但是当我在Server中检查时没有创建文件.Consider登录成功完成。

需要建议实现所需的输出。感谢

2 个答案:

答案 0 :(得分:0)

您没有登录,因此您无法执行任何操作。你确定inputfile已经确定了吗?

from ftplib import FTP
ftp = FTP('hn')
ftp.login('username', 'password')
ftp.cwd('working_dir')
myfile = open(myfile.txt, 'rb')
ftp.storbinary('STOR ' + myfile, myfile)
ftp.quit()
# No need to close() after quit.

或者,您可以使用以下命令登录打开连接:

ftp = FTP('hn', 'username', 'password')

所以更好:

from ftplib import FTP
ftp = FTP('hn', 'username', 'pass')
ftp.cwd('working_dir')
with open(myfile, 'rb') as f:
    ftp.storbinary('STOR ' + myfile, f)

ftp.quit()

答案 1 :(得分:0)

你需要传递STOR the filename on the remote server,你传递的是路径。

您还需要使用storlines,因为您发送的文件只是纯文本文件。

试试这个:

import os
from ftplib import FTP

local_file = r'C:\working\cyborg.txt'
remote_file_name = os.path.basename(local_file)

ftp = FTP('host', 'username', 'password')
ftp.cwd('/some/path/on/server')
ftp.storlines('STOR %s' % (remote_file_name,),
              open(local_file, 'r'))
ftp.quit()