在Fabric中,如何从远程路径创建全局列表

2024-04-26 13:42:18 发布

您现在位置:Python中文网/ 问答频道 /正文

{I要将文件从Python服务器传输到^的远程服务器。在

我需要从一个glob表达式生成要传输的文件列表,比如*或{}(然后应用一些额外的排除)。在

对于向远程传输的情况,很容易查找源文件列表,因为源文件是本地的:

[ f for f in Path(local_dir).glob(<my glob expression>)]

但是如何在远程服务器上执行此操作?我有一个通过with fabric.Connection(...) as c:建立到远程的连接,但在connection对象中找不到glob方法。在


Tags: 文件pathin服务器列表for远程表达式
1条回答
网友
1楼 · 发布于 2024-04-26 13:42:18

一种选择是利用^{}返回的SFTPClient对象的listdir方法来获取所有远程文件的列表,然后使用glob表达式应用^{}

fnmatch.filter(c.sftp().listdir(), '*.py')

结果:使用以下远程目录

^{pr2}$

首先列出整个dir,然后使用glob:

>>> c.sftp().listdir()
['5.py', '3.py', '4.csv', '2.txt', '1.log']
>>> fnmatch.filter(c.sftp().listdir(), '*.py')
['5.py', '3.py']

相关问题 更多 >