标签: ftplib

在Python中显示FTP下载进度(ProgressBar)

我正在使用以下Python脚本通过FTP下载文件。我想要的是在下载时查看进度的详细信息。为此,我使用了ProgressBar它,但没有显示任何内容。

这是我的代码:

import re
import os
import ftplib
import ntpath

import sys
import time

from progressbar import AnimatedMarker, Bar, BouncingBar, Counter, ETA, \
    AdaptiveETA, FileTransferSpeed, FormatLabel, Percentage, \
    ProgressBar, ReverseBar, RotatingMarker, \
    SimpleProgress, Timer, UnknownLength

ftp = ftplib.FTP("Your IP address")
ftp.login("Username", "password")
files = []

try:
    ftp.cwd("/feed_1")
    files = ftp.nlst()
    for fname in files:
        res = re.findall("2018-07-25", fname)
        if res:
            print 'Opening local file ' + ntpath.basename(fname)
            file = open(ntpath.basename(fname), 'wb')
            print 'Getting ' + ntpath.basename(fname)

            try:
                 widgets …
Run Code Online (Sandbox Code Playgroud)

python ftp download ftplib progress-bar

2
推荐指数
1
解决办法
1397
查看次数

如何使用ftplib正确下载文件,以便为Windows添加换行符

我一直使用一个非常简单的批处理文件从UNIX ftp服务器下载数百万个文件多年

login
passwd
ascii
prompt n
cd to the right directory
get some_file
get another_file
cd to the next directory
repeat the pattern
Run Code Online (Sandbox Code Playgroud)

关于这一点的好处是它很简单,并且所有文件都使用Window的换行符到达,因此文件已准备好与我现有的程序一起使用.由于我的路由器发生了一些变化,我不得不编写一个Python脚本来提取文件 - 我的第一个版本的脚本非常简单 - 但它的工作原理

for key in key_filings:
   for filing in key_filings[key]:
        remote_directory = '/foo/bar/' + key + '/' + filing['key_number']
        ftp.cwd(remote_directory)
        text_file = filing['txt']
        ftp.retrlines('RETR '+ text_file, open(save_dir + text_file,'w').writelines)
        hdr_file = filing['hdr']
        ftp.retrlines('RETR ' + hdr_file, open(save_dir + hdr_file,'w').writelines)
Run Code Online (Sandbox Code Playgroud)

但是,文件没有任何明显的换行符.这些文件存储在unix系统中.在我使用Windows CMD shell下载文件之前,换行符就在那里.我已经尝试发送ASCII命令,但正如预期的那样没有任何影响.

至关重要的是,我能够访问最初存在的换行符,因为我的一些代码处理是基于行的.

python newline ftplib

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

Python ftplib问题

当我从iPython 0.13运行此代码时:

import ftplib
f=ftplib.FTP('ftp://ftp.ncbi.nih.gov/genomes/Bacteria/')
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:gaierror:[Errno 8]提供nodename或servname,或者未知

完整错误如下.我在Mac OS X v10.7.5(Lion)上运行python 2.7.1.我做了一些搜索,似乎在其他情况下产生了类似的错误.奇怪的是我能做到的

import urllib2
tt= urllib2.urlopen('ftp://ftp.ncbi.nih.gov/genomes/Bacteria/')
Run Code Online (Sandbox Code Playgroud)

并且它可以工作但是如果我可以使用FTP函数,我可以避免解析urlopen,因为我的最终目标是选择目录的子集并下载它们的内容.

知道如何解决或绕过这个错误吗?提前致谢

---------------------------------------------------------------------------
gaierror                                  Traceback (most recent call last)
<ipython-input-2-91f3bda2d528> in <module>()
----> 1 f=ftplib.FTP('ftp://ftp.ncbi.nih.gov/genomes/Bacteria/')

/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ftplib.pyc in        __init__(self, host, user, passwd, acct, timeout)
115         self.timeout = timeout
116         if host:
--> 117             self.connect(host)
118             if user:
119                 self.login(user, passwd, acct)

/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ftplib.pyc in connect(self, host, port, timeout)
130         if timeout != -999:
131             self.timeout = timeout
--> 132         self.sock = socket.create_connection((self.host, self.port), self.timeout)
133         self.af …
Run Code Online (Sandbox Code Playgroud)

python ftplib

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

如何在Windows中安装python ftplib?

我想使用python编写一些ftp程序。请帮助我在Windows 7中安装“ ftplib”。

我尝试安装它,但未成功。

python ftp ftplib

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

ftplib.error_perm: 553 无法创建文件。(Python 2.4.4)

我正在写入我要通过 FTP 访问的用户的主目录,因此权限应该不是问题。FTP 在 FileZilla 中运行。

我检查了 vsftp.conf 并进行了local_enable=YES更改

在带有 Python 2.4.4 的Debian4系统上(我无法升级它),我将此代码与 ftplib 一起使用

>>> f = ftplib.FTP('address', 'user', 'password')
>>> f.cwd('/home/user/some/dir/')
'250 Directory successfully changed.'
>>> myfile = '/full/path/of/file.txt'
>>> o = open(myfile, 'rb')
>>> f.storbinary('STOR ' + myfile, o)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "/usr/lib/python2.4/ftplib.py", line 415, in storbinary
    conn = self.transfercmd(cmd)
  File "/usr/lib/python2.4/ftplib.py", line 345, in transfercmd
    return self.ntransfercmd(cmd, rest)[0]
  File "/usr/lib/python2.4/ftplib.py", line 327, in …
Run Code Online (Sandbox Code Playgroud)

python linux ftp ftplib

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

FTP.delete(filename) from ftplib 错误

当我尝试ftp.delete()从 ftplib 使用时,它会引发error_perm, resp:

>>> from ftplib import FTP
>>> ftp = FTP("192.168.0.22")
>>> ftp.login("user", "password")
'230 Login successful.'
>>> ftp.cwd("/Public/test/hello/will_i_be_deleted/")
'250 Directory successfully changed.'
>>> ftp.delete("/Public/test/hello/will_i_be_deleted/")
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/ftplib.py", line 520, in delete
resp = self.sendcmd('DELE ' + filename)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/ftplib.py", line 243, in sendcmd
return self.getresp()
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/ftplib.py", line 218, in getresp
raise error_perm, resp
ftplib.error_perm: 550 Delete operation failed.
Run Code Online (Sandbox Code Playgroud)

该目录存在,并且“用户”有足够的权限删除该文件夹。

该站点实际上是一个支持ftp的NAS(WD MyBookWorld)。 …

python ftp networking ftplib delete-file

0
推荐指数
1
解决办法
2万
查看次数

如何从Python中的ftp同时下载几个文件

我是Python编程的新手.我的问题是,如何同时下载几个文件.不是逐个文件,而是同时从ftp上的一个目录.现在我使用这个脚本,但我不知道如何重建这段代码:

  filenames = []
    ftp.retrlines("NLST", filenames.append)
    print filenames
    print path
    for filename in filenames:
        local_filename = filename
        print filename
        print local_filename
        f = open(local_filename, "wb") 

        s = ftp.size(local_filename)     
        sMB = s/(1024*1024) 
        print "file name: " + local_filename + "\nfile size: " + str(sMB) + " MB" 
        ftp.retrbinary("RETR %s" % local_filename, f.write) 
    print "\n Done :) "
    time.sleep(2)
    f.close()
    ftp.quit() #closing connection
    time.sleep(5)
Run Code Online (Sandbox Code Playgroud)

它工作正常,但不是我需要的.

python file download simultaneous ftplib

0
推荐指数
1
解决办法
2583
查看次数

Python FTPS 在被动模式下挂在目录列表上

我设法使用 curl 连接到 FTP 服务器并列出目录的内容out

$ curl -v --insecure --ftp-ssl --user xxx:yyy blabla:990/out/
> AUTH SSL
< 234 Proceed with negotiation.
...
> USER xxx
< 331 Please specify the password.
> PASS yyy
< 230 Login successful.
> PBSZ 0
< 200 PBSZ set to 0.
> PROT P
< 200 PROT now Private.
> PWD
< 257 "/"
> CWD out
< 250 Directory successfully changed.
> EPSV
< 229 Entering Extended Passive Mode (|||51042|).
* …
Run Code Online (Sandbox Code Playgroud)

python ftp curl ftplib

0
推荐指数
1
解决办法
2369
查看次数

使用ftplib下载部分文件

有没有一种方法可以从最后一行(文件结尾)仅下载部分文件。就像文件超过40 MB,而我只想检索最后一块,假设是2042个字节。有可能使用python 3和ftplib来做到这一点吗?

python ftp ftplib python-3.x

0
推荐指数
1
解决办法
1036
查看次数