_import paramiko
client = paramiko.SSHClient()
client.set_missing_Host_key_policy(paramiko.AutoAddPolicy())
client.connect('hostname', username='test1234', password='test')
path = ['/home/test/*.txt', '/home/test1/*.file', '/home/check/*.xml']
for i in path:
for j in glob.glob(i):
print j
client.close()
_
_glob.glob
_を使用して、リモートサーバー上のワイルドカードファイルを一覧表示しようとしています。しかし、glob.glob()
は機能していません。
Python 2.6を使用します。
リモートサーバーには、次のファイルが含まれています:_/home/test1/check.file
_、_/home/test1/validate.file
_、_/home/test1/vali.file
_
誰かがこの問題について助けてくれますか?.
glob
は、以前にSSHClient
をインスタンス化したことがあるという理由だけで、魔法のようにリモートサーバーでの作業を開始することはありません。
SFTPClient.listdir
:のように、ParamikoAPIを使用してファイルを一覧表示する必要があります。
import fnmatch
sftp = client.open_sftp()
for filename in sftp.listdir('/home/test'):
if fnmatch.fnmatch(filename, "*.txt"):
print filename
補足:AutoAddPolicy
は使用しないでください。そうすることでセキュリティが失われます。 Paramiko "Unknown Server"を参照してください。
または、paramikoラッパーである pysftp を使用して、次のように記述します。
import pysftp
def store_files_name(fname):
pass
def store_dir_name(dir_name):
pass
def store_other_file_type(other_file):
pass
with pysftp.Connection('server', username='user', password='pass') as sftp:
sftp.walktree('.', store_files_name, store_dir_name, store_other_file_type)