Python 按日期订购SFTP文件

Python 按日期订购SFTP文件,python,sftp,Python,Sftp,我正在连接到带有文件列表的sftp文件夹。我需要按日期订购,并提取最新的两个 filepath= "/test/sftp/files/" localpath= "C:/myfiles/" os.get(filepath, localpath) 我可以使用os.get提取所有文件,但我尝试了os.listdir,但这并不是我需要的按日期排序。我查看了操作系统库,但找不到按日期排序的内容。除了只给出远程文件名的listdir之外,paramiko还提供了一个listdir\u attr方法,该方

我正在连接到带有文件列表的sftp文件夹。我需要按日期订购,并提取最新的两个

filepath= "/test/sftp/files/"
localpath= "C:/myfiles/"

os.get(filepath, localpath)

我可以使用os.get提取所有文件,但我尝试了os.listdir,但这并不是我需要的按日期排序。我查看了操作系统库,但找不到按日期排序的内容。

除了只给出远程文件名的
listdir
之外,paramiko还提供了一个
listdir\u attr
方法,该方法返回一个包含文件名和
st\u mtime
字段的
SFTPAttributes列表。您只需在
st_mtime
字段中对该列表进行排序,即可获得按(修改)日期排序的文件列表:

类MyClass1
{
公共字符串数据时间{get;set;}
公共字符串DataTimeUTC{get;set;}
公共字符串路径{get;set;}
}
SftpClient=新SftpClient(con);
client.Connect();
var files=client.ListDirectory(“”);
foreach(文件中的var文件)
{
newData.AddRange(新列表(){
新MyClass1(){Path=file.Name,DataTime=$“{file.LastWriteTime}”,DataTimeUTC=$”{file.LastWriteTimeUtc.Ticks}});
}
newData.Sort((a,b)=>a.DataTimeUTC.CompareTo(b.DataTimeUTC));

您如何连接到sftp文件夹?使用paramiko?@SergeBallesta是的,我的连接是通过paramiko建立的,我也会将此添加到querySee。这看起来不像Python。
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)]
class MyClass1
      {
          public string DataTime { get; set; }
          public string DataTimeUTC { get; set; }
          public string Path { get; set; }  
    }
  
  SftpClient client = new SftpClient(con);
                  client.Connect();
                  var files = client.ListDirectory("");

    foreach (var file in files)
                 {
  newData.AddRange(new List<MyClass1>() {
  new MyClass1() { Path =  file.Name, DataTime = $"{file.LastWriteTime}", DataTimeUTC =  $"{file.LastWriteTimeUtc.Ticks}" } });
  }

  newData.Sort((a, b) => a.DataTimeUTC.CompareTo(b.DataTimeUTC));