我正在连接到带有文件列表的 sftp 文件夹。我需要按日期订购这些并提取最新的两个。
filepath= "/test/sftp/files/"
localpath= "C:/myfiles/"
os.get(filepath, localpath)
我可以使用 os.get 提取所有文件,但我尝试了 os.listdir 但这并没有按我需要的日期排序。我查看了 os 库,但找不到按日期订购的东西。
最佳答案
除了只给出远程文件名称的 listdir
之外,paramiko 还提供了一个 listdir_attr
方法,该方法返回一个包含文件名的 SFTPAttributes
列表和一个 st_mtime
字段(等等)。您只需对该 st_mtime
字段上的列表进行排序,即可获取按(修改)日期排序的文件列表:
client = paramiko.client.SSHClient()
client.connect(...) # use your connection parameters here
sftp = client.open_sftp()
remote_files = [x.filename for x in sorted(sftp.listdir_attr(), key = lambda f: f.st_mtime)]
关于python - 按日期订购 SFTP 文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56109557/