Python使用pexpect通过scp发送文件

时间:2016-10-17 13:55:38

标签: python operating-system scp pexpect torrent

所以我尝试使用pexpect将所有torrent文件发送到使用scp的服务器。这适用于大多数情况,但并非所有我的torrent文件都被发送。即使打印功能在' if i == 0'打印出所有的种子。如果我去服务器并删除已发送的所有内容并再次运行,则会发送相同的torrent文件。有谁知道问题可能是什么?

import os
import getpass
import subprocess
import pexpect

filepath = 'my downloads dir'

os.chdir(filepath)

var_password = str(getpass.getpass())
destination = "user@server: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)

1 个答案:

答案 0 :(得分:1)

由于大卫的评论,我想我已经明白了。包含空格和冰岛字母的文件(因为我是冰岛语)不会被转移。