Python 按日期订购SFTP文件
我正在连接到带有文件列表的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方法,该方
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));