如何在没有带有结构的本地临时文件的情况下获取远程文件的内容

时间:2013-10-11 13:10:42

标签: python fabric

我希望使用fabric获取远程文件的内容,而不创建临时文件。

3 个答案:

答案 0 :(得分:25)

from StringIO import StringIO
from fabric.api import get

fd = StringIO()
get(remote_path, fd)
content=fd.getvalue()

答案 1 :(得分:6)

使用Python 3(和fabric3)时,使用last_value(block_id ignore nulls) over (partition by emp_id order by "timestamp" rows between unbounded preceding and current row)io.StringIO时出现这个致命错误,显然是因为Paramiko用字节写入类文件对象。所以我切换到使用string argument expected, got 'bytes'并且它可以工作:

io.BytesIO

答案 2 :(得分:1)

import tempfile
from fabric.api import get
with tempfile.TemporaryFile() as fd:
    get(remote_path, fd)
    fd.seek(0)
    content=fd.read()

请参阅:http://docs.python.org/2/library/tempfile.html#tempfile.TemporaryFile

和:http://docs.fabfile.org/en/latest/api/core/operations.html#fabric.operations.get