我尝试了以下代码,并改变了所有可能的方式,如
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登录成功完成。
需要建议实现所需的输出。感谢
答案 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()