【发布时间】:2018-03-01 15:02:17
【问题描述】:
我目前正在尝试使用 pexpect 传输文件。它通常工作正常,但最近由于不传输整个文件而导致问题。它要么截断文件传输,要么脚本在完成之前继续运行。
我的代码如下:
job_id = str(job_record['control']['id'])
self.px_ssh.sendline('cd ' + self.remotePath + job_id)
self.px_ssh.prompt()
self.px_ssh.sendline('ls')
self.px_ssh.prompt()
remote_files = self.px_ssh.before.decode('utf-8')
for cop in outfiles:
if cop in remote_files:
print('Transferring file _from_ remote cluster: ' + cop)
self.px_ftp.sendline('get ' + self.remotePath + job_id + '/' + cop + ' ' + os.getcwd())
self.px_ftp.expect('sftp>', timeout=None)
还有日志文件:
get path/QMCDB/Elemental/As/As_QMC_2x2x2/prop.in.o path/Documents/Research/QMCDB/Runs/Elemental/As/As_QMC_2x2x2
Connected to taub.campuscluster.illinois.edu.
sftp> get path/QMCDB/Elemental/As/As_QMC_2x2x2/prop.in.o path/Documents/Research/QMCDB/Runs/Elemental/As/As_QMC_2x2x2
Fetching path/QMCDB/Elemental/As/As_QMC_2x2x2/prop.in.o to path/Documents/Research/QMCDB/Runs/Elemental/As/As_QMC_2x2x2/prop.in.o
path/QMCDB/Elemental/As/As_ 0% 0 0.0KB/s --:-- ETA
path/QMCDB/Elemental/As/As_ 0% 11MB 11.1MB/s 02:32 ETA
path/QMCDB/Elemental/As/As_ 1% 22MB 11.1MB/s 02:31 ETA
可以看出,它只是在很短的时间后继续前进。我不确定它为什么这样做。您知道如何确保在我的其余代码进行之前传输整个文件吗?
【问题讨论】:
-
我刚刚检查了文档,但 timeout=None 的行为实际上并没有定义。我不确定它会按照你的想法做。