开发者

Python Fabric: How to retrieve a filelist of a dir

I'm building a remote server admin tool using the python-fabric library and am looking for a good way of retrieving a filelist for a directory on the remote server. Currently I'm using run("ls dir") and am manu开发者_如何学Pythonally splitting the return string, which seems horrendous and very much architecture dependent. fabric.contrib.files doesn't seem to contain anything of use..

Suggestions much appreciated.

Cheers, R


What's wrong with this?

output = run('ls /path/to/files')
files = output.split()
print files

Check the documentation on run() for more tricks.


I think the best way is to write a BASH (others shells behave similar) oneliner. To retrieve list of files in a directory.

for i in *; do echo $i; done

So the complete solution that returns absolute paths:

from fabric.api import env, run, cd

env.hosts = ["localhost"]
def list_dir(dir_=None):
    """returns a list of files in a directory (dir_) as absolute paths"""
    dir_ = dir_ or env.cwd
    string_ = run("for i in %s*; do echo $i; done" % dir_)
    files = string_.replace("\r","").split("\n")
    print files
    return files

def your_function():
    """docstring"""
    with cd("/home/"):
        list_dir()
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜