我的要求是——
我在“commands.ftp”文件中编写了一组命令,用于将“request.txt”文件上传到 FTP 服务器。我想从我的python文件中调用命令提示符并一一运行“commands.ftp”文件中的命令。成功执行所有命令后,我需要 python 文件中的输出。假设文件是否上传成功或发生任何错误。
我看到很多建议使用子流程的答案。但我没有得到确切的答案来使用它。
命令文件
ftp
open hostname.com
usename
password
quote site recfm=fb lrecl=750 blocksize=27750 cyl pri=120 sec=60
put "File_Name.txt"
QUIT
上面的代码是将文件上传到 Mainframe CMS。我能够成功上传文件。但是在上传文件后,我们将收到如何捕获的响应。我无法捕获输出响应。
下面是我为执行 command.ftp 文件而编写的代码。
from subprocess import Popen, PIPE
commands = open('local.ftp', 'r').read()
process = Popen("cmd.exe", shell=False, universal_newlines=True,
stdin=PIPE, stdout=PIPE, stderr=PIPE)
out = process.communicate(commands)
print(out)
这里 out 变量没有给出输出