我想从驻留在svn repo上的tarball中获取一个文件。我确实使用特定的用户名和密码对svn repo服务器进行ssh访问,并希望通过Python代码执行相同操作。
我不想将整个tarball带到我的机器上,然后提取所需的文件。
有谁能告诉我如何实现同样的目标?
答案 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())