如何从tarball获取文件远程驻留

时间:2013-12-08 16:55:38

标签: python svn

我想从驻留在svn repo上的tarball中获取一个文件。我确实使用特定的用户名和密码对svn repo服务器进行ssh访问,并希望通过Python代码执行相同操作。

我不想将整个tarball带到我的机器上,然后提取所需的文件。

有谁能告诉我如何实现同样的目标?

1 个答案:

答案 0 :(得分:1)

您可以使用此svn命令获取tarball内容:

svn cat url_to_repo/path/to/tarball

您可以使用subprocess来调用此Python。此svn命令将文件的内容写入标准输出,因此您可以从subprocess.PIPE读取它并将其解压缩到内存或本地文件中。

以下是获取文件内容的示例Python代码:

#!/usr/bin/env python

import subprocess

svn_with_args = ['svn', 'cat', 'url_to_repo/path/to/tarball']
proc = subprocess.Popen(svn_with_args, stdout=subprocess.PIPE)
content = ''.join(proc.stdout.readlines())