2017-03-15 2 views

Répondre

1

SFTP.open(mode='a') ouvre un fichier dans le mode annexant. Donc d'abord, vous pouvez appeler SFTP.stat() pour obtenir la taille actuelle du fichier (sur le côté distant), puis open(mode='a') et ajouter de nouvelles données.

+0

salut whjm, merci pour votre aide. Ça marche. – Howardyan

0

base sur les conseils de whjm, j'ai écrit le code suivant, ça fonctionne. souhaite peut aider plus de gens:

if filename in file_list: 
    stat = sftp.stat(remot_dir + filename) 
    f_local = open(local_dir + filename) 
    f_local.seek(stat.st_size) 
    f_remote = sftp.open(remot_dir + filename, "a") 
    tmp_buffer = f_local.read(100000) 
    while tmp_buffer: 
     f_remote.write(tmp_buffer) 
     tmp_buffer = f_local.read(100000) 
    f_remote.close() 
    f_local.close() 
else: 
    f_local = open(local_dir + filename) 
    f_remote = sftp.open(remot_dir + filename, "w") 
    tmp_buffer = f_local.read(100000) 
    while tmp_buffer: 
     f_remote.write(tmp_buffer) 
     tmp_buffer = f_local.read(100000) 
    f_remote.close() 
    f_local.close()