我正在尝试使用paramiko检查远程文件是否可写。 我目前的代码是
from paramiko.ssh_exception import SSHException, BadHostKeyException
import paramiko
import sys
from optparse import OptionParser
import os
stdin, stdout, stderr = self.__econnection.exec_command('bash');
stdin.write('if [ -w "%s" ];'%(temp_path))
stdin.write("then echo True;");
stdin.write("else echo False;");
stdin.write("fi;");
stdin.flush();
但是一旦执行这些行,shell就会卡住,我必须关闭shell。 请帮忙..
答案 0 :(得分:2)
假设ssh是你的paramiko SSHClient对象,temp_path是被测文件的路径,并且连接已经设置,请尝试以下方法:
# prepare command
command = 'if [ -w {filename} ]; then echo True; else echo False; fi;'
# add filename
command = command.format(filename=temp_path)
# execute command
stdin, stdout, stderr = ssh.exec_command(command)
# read the result from stdout and remove the trailing newline character
result = stdout.readline().rstrip()
print(result)