我希望使用fabric获取远程文件的内容,而不创建临时文件。
答案 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