Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python中的scp通过os.system获取最新文件?_Python_Scp_Os.system - Fatal编程技术网

如何使用python中的scp通过os.system获取最新文件?

如何使用python中的scp通过os.system获取最新文件?,python,scp,os.system,Python,Scp,Os.system,我想使用pythonos.system库从远程UNIX目录获取/scp最新文件夹,该目录是一个名称包括日期时间的文件夹系统,例如: [usr1@server1 stats_from_dir]$ pwd /tmp/dir1/stats_from_dir [usr1@server1 stats_from_dir]$ ls -alrth drwxr-x--- 2 23K Aug 28 12:50 pmexport_20200825 drwxr-x--- 2 23K Aug 28 12:50

我想使用pythonos.system库从远程UNIX目录获取/scp最新文件夹,该目录是一个名称包括日期时间的文件夹系统,例如:

[usr1@server1 stats_from_dir]$ pwd
/tmp/dir1/stats_from_dir

[usr1@server1 stats_from_dir]$ ls -alrth
drwxr-x---  2  23K Aug 28 12:50 pmexport_20200825
drwxr-x---  2  23K Aug 28 12:50 pmexport_20200826
drwxr-x---  2  21K Aug 28 12:50 pmexport_20200827
我可以得到所有这样的文件夹

import os
    
get_files = 'scp -r usr1@10.1.1.39:/tmp/dir1/stats_from_dir/* /dir2/.'
    
os.system(get_files)

但是我怎样才能只得到最新的文件夹呢?有没有办法在os.system库中使用参数而不使用其他库(如paramiko、subprocess..等)来执行此操作?

您知道文件夹的实际日期吗

假设最后一个文件夹是昨天

然后使用datetime.date编译昨天的日期,并使用datetime.timedelta减去一天

然后用strftime以你所需要的强大格式打开昨天

最后,将那天附加到您使用os.system的字符串中

import os
import datetime
    

yesterday = datetime.date.today() - datetime.timedelta(days=1)
yesterday_string = yesterday.strftime('%Y%m%d')

get_files = 'scp -r usr1@10.1.1.39:/tmp/dir1/stats_from_dir/pmexport_{} /dir2/.'.format(yesterday_string)
    
os.system(get_files)

你知道文件夹的实际日期吗

假设最后一个文件夹是昨天

然后使用datetime.date编译昨天的日期,并使用datetime.timedelta减去一天

然后用strftime以你所需要的强大格式打开昨天

最后,将那天附加到您使用os.system的字符串中

import os
import datetime
    

yesterday = datetime.date.today() - datetime.timedelta(days=1)
yesterday_string = yesterday.strftime('%Y%m%d')

get_files = 'scp -r usr1@10.1.1.39:/tmp/dir1/stats_from_dir/pmexport_{} /dir2/.'.format(yesterday_string)
    
os.system(get_files)
试试这个:

import os
    
get_files = "scp -r usr1@10.1.1.39:/tmp/dir1/stats_from_dir/$(ssh usr1@10.1.1.39 'ls -t /tmp/dir1/stats_from_dir/ | head -1') /dir2/."
    
os.system(get_files)
试试这个:

import os
    
get_files = "scp -r usr1@10.1.1.39:/tmp/dir1/stats_from_dir/$(ssh usr1@10.1.1.39 'ls -t /tmp/dir1/stats_from_dir/ | head -1') /dir2/."
    
os.system(get_files)

为什么要用
os.system()
而不是像paramiko这样的库来执行此操作?任何其他库的安装都是有限的。为什么要用
os.system()
而不是像paramiko这样的库来执行此操作?任何其他库的安装都是有限的。。