Python Fabric:如何检索目录的文件列表

发布于 2024-11-19 01:26:22 字数 188 浏览 11 评论 0原文

我正在使用 python-fabric 库构建一个远程服务器管理工​​具,并正在寻找一种检索远程服务器上目录的文件列表的好方法。目前我正在使用 run("ls dir") 并手动分割返回字符串,这看起来很可怕并且非常依赖于体系结构。 Fabric.contrib.files 似乎不包含任何有用的东西。

非常感谢建议。

干杯, 右

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 manually 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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

↘人皮目录ツ 2024-11-26 01:26:22

这有什么问题吗?

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

检查 有关 run() 的文档 了解更多技巧。

What's wrong with this?

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

Check the documentation on run() for more tricks.

梦里寻她 2024-11-26 01:26:22

我认为最好的方法是编写一个 BASH(其他 shell 的行为类似)oneliner。检索目录中的文件列表。

for i in *; do echo $i; done

所以返回绝对路径的完整解决方案:

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()

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()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文