2017-09-12 1 views
-2

リモートサーバーにファイルをアップロードする必要があるアプリケーションで作業しています。は、ファイルがループのあるリモートサーバーに存在するかどうかを確認します。

私はファイルが処理されるのを待って、処理されたファイルを元のサーバーに戻します。

paramikoモジュールを使用してリモートサーバーにファイルをコピーできました。

どのようにして次のことを達成できますか?

  • は、結果ファイルをループに基づいて生成されているかどうかをチェックするための基準を作成し、ファイルがリモートフォルダに作成された後
  • のみSFTPを進めます。ここで

私は問題が解決されました、これまでに

s = open("sea" + str(UID), 'w') 
s.write(outtext) 
s.close() 
ssh = paramiko.SSHClient() 
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
ssh.connect("XXXX", username="XXXX", password="XXXXX") 
sftp = ssh.open_sftp() 
currentfile=pwd + "/sea" + str(UID) 
print currentfile 
destinationfile="/srv/sftp/smc-sftp-DEFAULT/inbox/sea" + str(UID) 
sftp.put(currentfile,destinationfile) 
outputfile="/srv/sftp/smc-sftp-DEFAULT/outbox/" 
finalfile="/sea" + str(UID) + ".res" 

while True: 

    try: 
     print(sftp.stat(outputfile+finalfile)) 
     print('file exists') 
     sftp.get(outputfile+finalfile,pwd + "/sea" + str(UID) + ".res") 
     break 
    except IOError: 
     print('copying file') 
     continue 

    sftp.close() 
    ssh.close() 
+0

ようこそ。 [How to Ask](https://stackoverflow.com/help/how-to-ask)を読んで、あなたが試したことの詳細を記入してください。 – Antimony

+0

提案していただきありがとうございます。私は今までの試行を追加しました。 –

答えて

0

を試してみましたが、どのような私のコードです。 出力ファイルを余分な "/"で定義している間違いでした

これを値以下に変更しました。

OUTPUTFILE = "/ srvの/ SFTP/SMC-SFTP-DEFAULT /送信ボックス" にStackOverflowに

関連する問題