我正在使用python-fabric库构建一个远程服务器管理工具,希望找到一种好的方法来检索远程服务器上目录的文件列表。目前我正在使用run(“ls dir”)并手动拆分返回字符串,似乎非常糟糕并且架构非常依赖于此。fabric.contrib.files似乎没有包含任何有用的内容..
非常感谢您提供的建议。
祝好, R
我正在使用python-fabric库构建一个远程服务器管理工具,希望找到一种好的方法来检索远程服务器上目录的文件列表。目前我正在使用run(“ls dir”)并手动拆分返回字符串,似乎非常糟糕并且架构非常依赖于此。fabric.contrib.files似乎没有包含任何有用的内容..
非常感谢您提供的建议。
祝好, R
ls -1
(每行列出一个文件)在所有基于POSIX的系统上应该表现相同。 - jathanismfor 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()