Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.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 检索最新目录_Python_Directory - Fatal编程技术网

Python 检索最新目录

Python 检索最新目录,python,directory,Python,Directory,上面是我的代码,我试图检索远程服务器上的最新目录。我面临以下错误 错误: ['bash:head:command未找到'] 还有其他方法可以检索最新目录吗?实际上,您不需要“head”或“tail”,只需按如下方式从python中访问最后一行即可。 这是经过少量编辑的代码,用于捕捉最后一行作为last\u line: import paramiko ssh =paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAdd

上面是我的代码,我试图检索远程服务器上的最新目录。我面临以下错误

错误:

['bash:head:command未找到']

还有其他方法可以检索最新目录吗?

实际上,您不需要“head”或“tail”,只需按如下方式从python中访问最后一行即可。 这是经过少量编辑的代码,用于捕捉最后一行作为
last\u line

import paramiko
ssh =paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='test.com',username='test',password='test123')
srcpath = ('/tmp/test/')
destpath = ('/tmp/file/')
transfer=ssh.open_sftp()
stdin, stdout, stderr = ssh.exec_command('cd /tmp/test/; ls -1t *txt* | head -1') 
out = stdout.read().splitlines()
print out
error = stderr.read().splitlines()
print error
transfer.close()
ssh.close()

检查您的目标系统是否安装了
head
命令head和tail命令未安装。有没有其他方法可以找到最新的目录?如果我选择上面的选项,它不会选择最新的文件。我想要那个文件夹中包含的最新文件你说的“最新”是什么意思?该代码只获取“last”文件(按“ls”排序)并获取最后一个文件。您必须使用
ls
及其选项,才能找到适合您定义的最新版本。对于“我的”定义,即最新的编辑时间,正确的语法是
ls-tr1
import paramiko
ssh =paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='test.com',username='test',password='test123')
srcpath = ('/tmp/test/')
destpath = ('/tmp/file/')
transfer=ssh.open_sftp()
stdin, stdout, stderr = ssh.exec_command('cd /tmp/test/; ls -1t *txt*') 
out = stdout.read().splitlines()
last_line = out[-1] ## takes out the last line without need for tail command
print out
print last_line
error = stderr.read().splitlines()
print error
transfer.close()
ssh.close()