首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >python -使用pyftpdlib进行文件传输

python -使用pyftpdlib进行文件传输
EN

Stack Overflow用户
提问于 2014-07-09 12:08:12
回答 1查看 4.4K关注 0票数 1

我正在使用python进行文件传输。我已经搜索了很多,但仍然没有找到一个简单的演示工作的ftp客户端-服务器使用pyftpdlib。我认为这个库非常有用,但我不知道如何开始使用它。

非常感谢你的帮助!

编辑:好的,我跟着教程走了。我的目标是首先能够在本地机器上发送/接收文件。

我运行basic_ftpd.py并得到如下结果:

代码语言:javascript
复制
[I 14-07-09 15:08:27] >>> starting FTP server on 127.0.0.1:2121, pid=7000 <<<
[I 14-07-09 15:08:27] poller: <class 'pyftpdlib.ioloop.Select'>
[I 14-07-09 15:08:27] masquerade (NAT) address: None
[I 14-07-09 15:08:27] passive ports: None

然后我运行winnt_ftpd.py并得到错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "***\lib\winnt_ftpd.py", line 41, in <module>
    from pyftpdlib.authorizers import WindowsAuthorizer
ImportError: cannot import name WindowsAuthorizer

假设我想在C:/share中发送一些文件,而在本地地址中,我认为它应该是127.0.0.1:2121或localhost:2121。然后在客户端,我想要获得目录列表:

代码语言:javascript
复制
import ftplib

ftp = ftplib.FTP("127.0.0.1:2121")
ftp.login("user", "12345")

data = []

ftp.dir(data.append)

ftp.quit()

for line in data:
    print "-", line

但这不起作用,我得到以下错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "C:\Users\***\src\client1.py", line 8, in <module>
    ftp = ftplib.FTP("127.0.0.1:2121")
  File "C:\Python27\lib\ftplib.py", line 117, in __init__
    self.connect(host)
  File "C:\Python27\lib\ftplib.py", line 132, in connect
    self.sock = socket.create_connection((self.host, self.port), self.timeout)
  File "C:\Python27\lib\socket.py", line 551, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
socket.gaierror: [Errno 11004] getaddrinfo failed

编辑:我已更改

代码语言:javascript
复制
ftp = ftplib.FTP("127.0.0.1:2121")

代码语言:javascript
复制
ftp = ftplib.FTP("127.0.0.1")

然后我得到了这个错误:

代码语言:javascript
复制
socket.error: [Errno 10061] No connection could be made because the target machine actively refused it

有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2014-12-15 20:20:17

试试这个怎么样:

conn = ftplib.FTP() conn.connect('127.0.0.1', 2121) conn.login('user','12345')

FTP()构造函数只接受主机名或IP地址,相反,如果您不传递任何内容,然后使用connect()配置所有内容,则可以传递一个带有(IP,port)的元组

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24645254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档