私はpexpectを使ってすべてのトレントファイルをscpでサーバに送信しようとしています。これはほとんどの部分で機能しますが、すべてのトレントファイルが送信されるわけではありません。 'if i == 0'のprint関数はすべてのトレントを表示します。私がサーバーに行って、送信されたものをすべて削除してもう一度実行すると、同じトレントファイルが送信されます。誰が問題が何であるか知っていますか?pexpectを使ってPythonでファイルを送信するPython
import os
import getpass
import subprocess
import pexpect
filepath = 'my downloads dir'
os.chdir(filepath)
var_password = str(getpass.getpass())
destination = "[email protected]:dir"
for filename in os.listdir():
if filename.endswith('.torrent'):
try:
var_command = "scp " + filepath + filename + " " + destination
var_child = pexpect.spawn(var_command)
i = var_child.expect(["password:", pexpect.EOF])
if i==0: # send password
print('Sending: ' + filename)
var_child.sendline(var_password)
var_child.expect(pexpect.EOF)
elif i==1:
print("Got the key or connection timeout")
pass
except Exception as e:
print("Oops Something went wrong buddy")
print(e)
'* .torrent'ファイルのアーカイブを作成して、それを' scp'で送信してみませんか? また、スクリプト内のscpコマンドはどこですか? 'var_command'? – JazZ
var_commandとは何ですか?また、接続にタイムアウトが発生したり、おそらくサーバーに互換性のない文字/スペースを持つファイルを送信している可能性があります。 – David
ここでは、コードをリファクタリングするときに私はそれを削除して申し訳ありません。しかし、私はそれが大規模なシステムの一部になるようにこれを動作させようとしています – hjaltist