-1

我的要求是——

我在“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 变量没有给出输出

4

1 回答 1

0

Python 有一个内置的 FTP 模块 ( import ftplib)。这比尝试将命令传递到命令行“ftp”命令要聪明得多。例如,Windows 根本没有在框中包含“ftp”命令。

于 2021-07-17T17:47:36.110 回答