www.91084.com

GVKun编程网logo

如何使用Python ftplib获取FTP文件的修改时间(python ftplib获取文件大小)

8

在这篇文章中,我们将带领您了解如何使用Pythonftplib获取FTP文件的修改时间的全貌,包括pythonftplib获取文件大小的相关情况。同时,我们还将为您介绍有关Python2.x中如何使用

在这篇文章中,我们将带领您了解如何使用Python ftplib获取FTP文件的修改时间的全貌,包括python ftplib获取文件大小的相关情况。同时,我们还将为您介绍有关Python 2.x 中如何使用ftplib模块进行FTP客户端编程、Python Ftp Ftplib dir()方法 返回值问题、python ftp(ftplib)、python ftplib 怎么列出来隐藏文件?的知识,以帮助您更好地理解这个主题。

本文目录一览:

如何使用Python ftplib获取FTP文件的修改时间(python ftplib获取文件大小)

如何使用Python ftplib获取FTP文件的修改时间(python ftplib获取文件大小)

我正在尝试使用Python将CSV文件加载到Amazon S3。我需要知道CSV文件的修改时间。我正在使用ftplib将FTP与Python(2.7)连接。

答案1

小编典典

MLST或MDTM

虽然可以使用MLSTMDTM命令通过FTP检索单个文件的时间戳,但ftplib都不支持。

当然,您可以使用实现自己的MLST或。MDTMFTP.voidcmd

有关详细信息,请参阅RFC 3659,尤其是:

  • 3.文件修改时间(MDTM)
  • 7.机器处理清单(MLST和MLSD)

一个简单的例子MDTM

from ftplib import FTPfrom dateutil import parser# ... (connection to FTP)timestamp = ftp.voidcmd("MDTM /remote/path/file.txt")[4:].strip()time = parser.parse(timestamp)print(time)

MLSD

ftplib库明确支持的唯一可以返回标准化文件时间戳记的命令是MLSD通过FTP.mlsdmethod。尽管仅当您要检索更多文件的时间戳时才使用它。

  • 使用以下命令检索完整的目录列表 MLSD
  • 在返回的集合中搜索所需的文件
  • 检索modify事实
  • 根据规范进行解析, YYYYMMDDHHMMSS[.sss]

有关详细信息,请再次参考RFC 3659,尤其是:

  • 7.5.3。修改事实部分
  • 2.3。时间段

    from ftplib import FTP
    from dateutil import parser

    … (connection to FTP)

    files = ftp.mlsd(“/remote/path”)

    for file in files:
    name = file[0]
    timestamp = file[1][‘modify’]
    time = parser.parse(timestamp)
    print(name + ‘ - ‘ + str(time))


请注意MLSTMLSD和返回的时间MDTM均为UTC(除非服务器损坏)。因此,您可能需要针对您当地的时区进行更正。

同样,请参阅RFC 3659 2.3。时间部分:

时间值始终以UTC(GMT)和公历表示,无论在服务器PI位置指示的日期和时间使用了哪种日历。


清单

如果FTP服务器不支持任何的MLSTMLSD而且MDTM,你所能做的就是用一个过时的LIST命令。这涉及解析返回的专有列表。

常见的* nix列表如下:

-rw-r--r-- 1 user group           4467 Mar 27  2018 file1.zip-rw-r--r-- 1 user group         124529 Jun 18 15:31 file2.zip

使用这样的清单,此代码将执行以下操作:

from ftplib import FTPfrom dateutil import parser# ... (connection to FTP)lines = []ftp.dir("/remote/path", lines.append)for line in lines:    tokens = line.split(maxsplit = 9)    name = tokens[8]    time_str = tokens[5] + " " + tokens[6] + " " + tokens[7]    time = parser.parse(time_str)    print(name + '' - '' + str(time))

Python 2.x 中如何使用ftplib模块进行FTP客户端编程

Python 2.x 中如何使用ftplib模块进行FTP客户端编程

python 2.x 中如何使用ftplib模块进行ftp客户端编程

在Python中,我们可以使用ftplib模块来创建一个FTP客户端,以便于和远程FTP服务器交互。通过该模块,我们可以实现上传文件、下载文件、删除文件等功能。本文将详细介绍如何使用ftplib模块进行FTP客户端编程,并附上代码示例。

首先,我们需要引入ftplib模块:

from ftplib import FTP
登录后复制

然后,我们可以使用FTP类来创建一个FTP对象,并连接到远程服务器:

ftp = FTP()
ftp.connect(''ftp.example.com'', 21)
登录后复制

其中,''ftp.example.com''是目标服务器的主机名,21是FTP服务器的默认端口号。

立即学习“Python免费学习笔记(深入)”;

接下来,我们需要登录到FTP服务器。如果有需要登录的权限,可以使用login()方法来进行身份验证:

ftp.login(''username'', ''password'')
登录后复制

其中,''username''是用户名,''password''是密码。如果不需要身份验证,可以使用匿名登录方式:

ftp.login()
登录后复制

登录成功后,我们可以开始进行FTP操作。以下是一些常用的FTP操作:

  1. 上传文件

    with open(''example.txt'', ''rb'') as file:
     ftp.storbinary(''STOR example.txt'', file)
    登录后复制

    其中,''example.txt''是本地文件的路径,''STOR example.txt''是要上传到服务器的路径。

  2. 下载文件

    with open(''example.txt'', ''wb'') as file:
     ftp.retrbinary(''RETR example.txt'', file.write)
    登录后复制

    其中,''example.txt''是要下载的文件在服务器上的路径,''file.write''表示将文件内容写入到本地文件中。

  3. 删除文件

    ftp.delete(''example.txt'')
    登录后复制

    其中,''example.txt''是要删除的文件在服务器上的路径。

  4. 创建目录

    ftp.mkd(''new_directory'')
    登录后复制

    其中,''new_directory''是要创建的目录名称。

  5. 切换目录

    ftp.cwd(''directory'')
    登录后复制

    其中,''directory''是要切换到的目录名称。

  6. 列出目录内容

    print ftp.nlst()
    登录后复制

    该方法将返回目录下的文件和文件夹列表。

完成FTP操作后,我们可以使用quit()方法来关闭FTP连接:

ftp.quit()
登录后复制

下面是一个完整的FTP客户端编程示例:

from ftplib import FTP

def ftp_client():
    ftp = FTP()
    ftp.connect(''ftp.example.com'', 21)
    ftp.login(''username'', ''password'')
    
    # 上传文件
    with open(''example.txt'', ''rb'') as file:
        ftp.storbinary(''STOR example.txt'', file)
    
    # 下载文件
    with open(''example.txt'', ''wb'') as file:
        ftp.retrbinary(''RETR example.txt'', file.write)
    
    # 删除文件
    ftp.delete(''example.txt'')
    
    # 创建目录
    ftp.mkd(''new_directory'')
    
    # 切换目录
    ftp.cwd(''directory'')
    
    # 列出目录内容
    print ftp.nlst()
    
    ftp.quit()

if __name__ == ''__main__'':
    ftp_client()
登录后复制

通过以上代码示例,我们可以在Python 2.x 中使用ftplib模块进行FTP客户端编程。根据实际需求,我们可以灵活运用以上FTP操作方法,实现所需的FTP功能。

以上就是Python 2.x 中如何使用ftplib模块进行FTP客户端编程的详细内容,更多请关注php中文网其它相关文章!

Python Ftp Ftplib dir()方法 返回值问题

Python Ftp Ftplib dir()方法 返回值问题

最近在用Ftplib 模块中的 dir方法 ,想用变量存储一下 返回的目录,发现返回的是None ,看了下源码发现并没有返回值, 只是会默认输出到标准输出流,百度了一下 也没百度到解决方案。

#Ftplib模块中 dir方法的定义 发现无返回值

    def dir(self, *args):
        ''''''List a directory in long form.
        By default list current directory to stdout.
        Optional last argument is callback function; all
        non-empty arguments before it are concatenated to the
        LIST command.  (This *should* only be used for a pathname.)''''''
        cmd = ''LIST''
        func = None
        if args[-1:] and type(args[-1]) != type(''''):
            args, func = args[:-1], args[-1]
        for arg in args:
            if arg:
                cmd = cmd + ('' '' + arg)
        self.retrlines(cmd, func)

研究了一下,发现直接在Ftplib源码中新写一个dirs方法就可以解决返回值的问题:

这里用了templist ,返回为所有目录的列表

    def dirs(self, *args):
        ''''''List a directory in long form.
        By default list current directory to stdout.
        Optional last argument is callback function; all
        non-empty arguments before it are concatenated to the
        LIST command.  (This *should* only be used for a pathname.)''''''
        cmd = ''LIST''
        templist = []
        func = None
        if args[-1:] and type(args[-1]) != type(''''):
            args, func = args[:-1], args[-1]
        for arg in args:
            if arg:
                cmd = cmd + ('' '' + arg)
        self.retrlines(cmd, templist.append)
        return templist

python ftp(ftplib)

python ftp(ftplib)

python的ftplib模块的基本操作(TCP)

  • bytes转化BufferedReader
    • io.BufferedReader(io.BytesIO(b))#缓冲字符输入流比特流处理

       

  • from ftplib import FTP
    ftp=FTP() #实例化
    ftp.set_debuglevel(2) #打开调试级别2,显示详细信息0无日志,1有少日志,2多日志
    ftp.connect("IP","port")
    ftp.login("user","password")
    print ftp.getwelcome() #打印出欢迎信息
    ftp.cmd("xxx/xxx") #更改远程目录
    bufsize=1024 #设置的缓冲区大小
    filename="filename.txt"
    file_handle=open(filename,"wb").write
    ftp.retrbinaly("RETR filename.txt",file_handle,bufsize) #接收服务器上文件并写入本地文件
    ftp.set_debuglevel(0) #关闭调试模式
    ftp.quit() #退出ftp温和
    ftp.close()#强退 ftp相关命令操作 ftp.cwd(pathname) #设置FTP当前操作的路径 ftp.dir() #显示目录下文件信息 ftp.nlst() #获取目录下的文件 ftp.mkd(pathname) #新建远程目录 ftp.pwd() #返回当前所在位置 ftp.rmd(dirname) #删除远程目录 ftp.delete(filename) #删除远程文件 ftp.rename(fromname, toname)#将fromname修改名称为toname。 ftp.storbinaly(
    "STOR filename.txt",file_handel,bufsize) #上传目标文件 ftp.retrbinary("RETR filename.txt",file_handel,bufsize)#下载FTP文件

    ftp.set_pasv(False)#设置被动模式

     

python ftplib 怎么列出来隐藏文件?

python ftplib 怎么列出来隐藏文件?

FTP上有一些隐藏文件,比如.htaccess 。用python做一个FTP下载,结果 ftp.nlst() 根本列不出来这个文件。。

有人搞过不,给个解答呗

关于如何使用Python ftplib获取FTP文件的修改时间python ftplib获取文件大小的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于Python 2.x 中如何使用ftplib模块进行FTP客户端编程、Python Ftp Ftplib dir()方法 返回值问题、python ftp(ftplib)、python ftplib 怎么列出来隐藏文件?的相关知识,请在本站寻找。

本文标签: