标签: ftplib

Python 的 ftplib 和 tq​​dm

我有一个控制台脚本,它使用ftplib作为后端从 ftp 服务器获取大量文件。我想使用tqdm为用户提供一些反馈,前提是他们打开了“详细”开关。这必须是可选的,因为某些用户可能会在没有tty访问权限的情况下使用脚本。

FTPLIBretrbinary方法采用了回调所以它应该有可能钩tqdm在那里莫名其妙。但是,我不知道这个回调会是什么样子。

python ftplib tqdm

5
推荐指数
1
解决办法
819
查看次数

Python ftplib WinError 10060

我正在学习使用 ftplib 从此链接从 ftp 服务器检索文件:https://docs.python.org/2/library/ftplib.html

当我运行这段代码时

from ftplib import FTP
ftp = FTP('ftp.debian.org')
ftp.login()
Run Code Online (Sandbox Code Playgroud)

我明白了

TimeoutError: [WinError 10060] 连接尝试失败,因为连接方在一段时间后没有正确响应,或者由于连接的主机未能响应而建立的连接失败

从这个答案/sf/ask/346287231/# =我知道这是一个服务器端问题,可以通过更改为ACTV模式来解决。

所以我将代码更改为

from ftplib import FTP
ftp = FTP()
ftp.set_pasv(True)
ftp.connect('ftp.debian.org')
ftp.login()
Run Code Online (Sandbox Code Playgroud)

还是同样的错误。谁能告诉我我的问题还有哪些其他原因?

编辑 - 在 64 位 Win 10 环境中在 Thonny(IDE) 上使用 Python 3.6.1

python ftplib

5
推荐指数
1
解决办法
6304
查看次数

在 Python 中使用 FTP.storbinary 将文件上传到 FTP 时出现“500 Unknown command”

我正在尝试将文件上传到 FTP。/public_html我正在尝试上传文件,files.000webhost.com但我不断收到 ftplib.error_perm: 500 Unknown command

我的代码如下:

import ftplib
session = ftplib.FTP('files.000webhost.com','hazaaay','dwadawdadw')
file = r'C:\\Users\\Downloads\\A csv\\a csv1.csv','b'                  # file to send
session.storbinary('a csv1.csv', file)     # send the file
file.close()                                    # close file and FTP
session.quit()
Run Code Online (Sandbox Code Playgroud)

尽管提供了未解决的参考,但它在控制台中表示该进程以退出代码 0 结束,尽管它没有显示在 FileZilla 中。有任何想法吗?谢谢。

python ftp ftplib python-3.x

5
推荐指数
1
解决办法
5034
查看次数

尝试在 Python 中列出 ftp 目录时出现 OSError

使用 Python 3.6.3。

我正在连接到 FTP 以ftplib通过 FTP_TLS使用。

ftps = ftplib.FTP_TLS('example.com', timeout=5)

# TLS is more secure than SSL
ftps.ssl_version = ssl.PROTOCOL_TLS

# login before securing control channel
ftps.login('username@example.com', 'password')

# switch to secure data connection
ftps.prot_p()

# Explicitly set Passive mode
ftps.set_pasv(True)
Run Code Online (Sandbox Code Playgroud)

这一切都有效。我可以发送ftps.mkd('mydir')(制作目录)和ftps.cwd('mydir')(更改工作目录),并且都可以正常工作。

但是,如果我发送其中任何一个(据我所知,它们基本上都是同义词):

        ftps.dir()
        ftps.nlst()
        ftps.retrlines('LIST')
        ftps.retrlines('MLSD')
Run Code Online (Sandbox Code Playgroud)

然后我得到一个异常(下面还包括所有 ftplib 调试信息;通常也与 FileZilla 显示的内容相匹配):

*cmd* 'AUTH TLS'
*put* 'AUTH TLS\r\n'
*get* '234 AUTH TLS OK.\n'
*resp* '234 AUTH TLS OK.'
*cmd* 'USER username@example.com' …
Run Code Online (Sandbox Code Playgroud)

python ftp ftps ftplib python-3.x

5
推荐指数
2
解决办法
1712
查看次数

ftplib MLSD 命令给出 500 Unknown 命令

我一直在使用ls = f.mlsd()从 ftp 获取文件列表和时间戳,但它给了我

ftplib.error_perm: 500 Unknown command
Run Code Online (Sandbox Code Playgroud)

ftp服务器有问题吗?我需要在服务器上安装任何东西才能让这个命令工作吗

python ftp ftplib python-3.x

5
推荐指数
1
解决办法
3985
查看次数

当服务器上的(子)目录在哪里时,Python ftp.nlst() 返回空列表

我的应用程序需要从远程 FTP 下载所有目录,我正在第一次测试 Python 的ftplib.

当我尝试使用命令列出远程 FTP 中的所有目录时,ftp.nlst()它返回一个空列表。我确信该目录不为空,因为此命令:ftp.retrlines('list')返回一个显示目录内子文件夹名称的对象。

在测试时,我尝试了其他命令,例如ftp.cwd('/other-dir/')ftp.pwd(),但这些命令似乎都不起作用。

这是我用来显示子目录列表的代码:

from ftplib import FTP

def ftpConnection():
    ftp = FTP('ftp-address')
    ftp.login('user', 'password') 
    lista = ftp.nlst()
    return (lista)

print(ftpConnection())
Run Code Online (Sandbox Code Playgroud)

输出:

[]
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,该列表是空的。


这是我的代码retrlines

def ftpConnection():
    ftp = FTP('remoteFtp')
    ftp.login('user', 'password') 
    ftp.retrlines('LIST')

print (ftpConnection())
Run Code Online (Sandbox Code Playgroud)

输出:

from ftplib import FTP

def ftpConnection():
    ftp = FTP('ftp-address')
    ftp.login('user', 'password') 
    lista = ftp.nlst()
    return (lista)

print(ftpConnection())
Run Code Online (Sandbox Code Playgroud)

这是命令行的输出ftp

[]
Run Code Online (Sandbox Code Playgroud)
def ftpConnection():
    ftp = FTP('remoteFtp') …
Run Code Online (Sandbox Code Playgroud)

python ftp ftplib python-3.x

5
推荐指数
1
解决办法
5754
查看次数

如何检查 FTP 服务器上的目录是否发生变化?

我想在 FTP 目录中添加新文件后立即将文件从 FTP 服务器获取到本地。

我知道可以使用看门狗观察器看到本地计算机上目录的更改。

但我想检查 FTP 服务器上目录的更改(添加新文件、删除文件)。

如何实现这一目标?

我用来检查本地计算机上目录更改的代码:

from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
import ftplib
import time

class ExampleHandler(FileSystemEventHandler):
    def on_created(self, event): 
        print "Got event for file %s" % event.src_path 

session = ftplib.FTP('address','username','password')
path='/directory/to/check'
session.cwd(path) 
observer = Observer()
event_handler = ExampleHandler() 
observer.schedule(event_handler, path_of_the_directory)
observer.start()
try:
    while True:
        time.sleep(1)
except KeyboardInterrupt:
    observer.stop()

observer.join()
Run Code Online (Sandbox Code Playgroud)

python ftp ftplib python-watchdog

5
推荐指数
1
解决办法
4199
查看次数

使用python从ftp服务器下载文件但下载后文件未打开

我正在使用 python 从 ftp 服务器下载文件,我能够下载文件,但是当我打开文件时,它们似乎已损坏或无法打开歌曲或 jpg 等文件工作正常,但文档、Excel 表格、pdf 和文本文件下载不正确。

以下是我的代码:

from ftplib import FTP
ftp = FTP()
ftp.connect(ip_address,port)
ftp.login(userid,password)
direc='directory path'
ftp.cwd(direc)
doc='doc.txt' or xlsx or pdf or jpg etc
download_path='path to download file on desktop'
file=open(download_path+ doc,'wb')
ftp.retrbinary(f"RETR {doc}", file.write)
Run Code Online (Sandbox Code Playgroud)

我能够下载所需的文件,但其中大部分都需要损坏。我应该进行哪些更改才能使代码正常工作。

python ftplib

5
推荐指数
1
解决办法
2382
查看次数

从 FTP 服务器上的 ZIP 存档读取文件,无需下载到本地系统

我在 FTP 服务器上的目标文件是 ZIP 文件,.CSV 位于更远的两个文件夹中。

我如何才能使用 BytesIO 让 pandas 读取 csv 而无需下载它?

这是我到目前为止所拥有的:

ftp = FTP('FTP_SERVER')
ftp.login('USERNAME', 'PASSWORD')
flo = BytesIO()
ftp.retrbinary('RETR /ParentZipFolder.zip', flo.write)
flo.seek(0)
Run Code Online (Sandbox Code Playgroud)

作为flo我感兴趣的 BytesIO 对象,我如何能够在对象内向下导航几个文件夹,以允许 pandas 读取我的 .csv 文件?这还有必要吗?

python ftp ftplib bytesio pandas

5
推荐指数
1
解决办法
1069
查看次数

ftplib python - 返回登录名或密码不正确的错误

我正在尝试使用 python 库“ftplib”。使用“Go --> Connect to Server...”下的查找器设置,我可以很好地连接到 MacBook 上的 FTP 服务器

当我在 jupyter 笔记本中使用 ftplib 时,它返回错误消息:

error_perm: 530 登录名或密码不正确!

这是我的代码:

from ftplib import FTP
ftp = FTP(host='ipaddress', user='myusername', passwd='mypassword')
Run Code Online (Sandbox Code Playgroud)

其中host是FTP服务器的IP地址,user是我的用户名,passwd是我得到的密码。感谢您的任何帮助。

ftplib python-3.x

5
推荐指数
1
解决办法
210
查看次数

标签 统计

ftplib ×10

python ×9

ftp ×6

python-3.x ×5

bytesio ×1

ftps ×1

pandas ×1

python-watchdog ×1

tqdm ×1