gpt4 book ai didi

python - 使用 pyftpdlib 进行文件传输

转载 作者:太空宇宙 更新时间:2023-11-03 18:18:15 24 4
gpt4 key购买 nike

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

非常感谢您的帮助!

编辑:好的,我按照教程操作了。我的目标是首先能够在本地计算机内发送/接收文件。

我运行 basic_ftpd.py 并得到:

[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 并收到错误:

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。然后从客户端我想获取目录列表:

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

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

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

编辑:我变了

ftp = ftplib.FTP("127.0.0.1:2121")

ftp = ftplib.FTP("127.0.0.1")

然后我收到此错误:

socket.error: [Errno 10061] No connection could be made because the target machine actively refused it

有什么建议吗?

最佳答案

试试这个怎么样:

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

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

关于python - 使用 pyftpdlib 进行文件传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24645254/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com