Python 使用 pexpect 通过 scp 发送文件

Python sending files over scp using pexpect

所以我正在尝试使用 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)

多亏了 David 的评论,我想我明白了。包含空格和冰岛字母的文件(因为我是冰岛人)不会被传输。