从python捕获scp的输出

2024-09-30 16:21:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个django服务器,我必须通过scp上传一些数据。我有这样的看法:

pathFile = '/home/user1/foo.json'
user = 'user1scp'
server = 'someserver.com'
pathServer = '/var/www/foo.json'

os.system("scp %s %s@%s:%s" % (pathFile, user, server, pathServer))

在页面运行的控制台窗口(即我调用命令“runserver”)上,我显示了以下输出:

^{pr2}$

我希望能够操作输出,这样我就可以通知用户所有文件(有多个文件要上载)都正确上载,或者没有上载。在

我试过这个答案中的答案How to capture stdout output from a Python function call?,但是没有用。我尝试了Popen和子进程,也没有结果。也许我做错了什么?在


Tags: 文件数据django答案服务器jsonhomeserver
1条回答
网友
1楼 · 发布于 2024-09-30 16:21:16

这并不能直接回答您的问题,但我不会在python中执行raw scp命令,因为即使有输出,也很难解析。您应该考虑使用^{}之类的工具来处理这个问题。它是pythonic,您可以完全控制输入/输出。与scp相同的操作是^{}。例如,您可以检查这个SO answer。在

几乎所有的命令行操作都可以使用fabric完成,学习它你不会后悔的。

相关问题 更多 >