【Uipath】如何获取指定文件夹下所有子文件夹和所有Excel表的文件名

【Uipath】如何获取指定文件夹下所有子文件夹和所有Excel表的文件名,第1张

解决方案 :使用递归算法进行遍历获取,什么是递归,简而言之就是自己调用自己的一种方法,关于递归算法自行百度。

本例通过递归方法来实现这一需求,输出所有文件夹路径,以及所有Excel文件名。

给定测试目录: C:\Users\admin\Desktop\递归查找,前提是我们不知道该指定文件夹下有多少个子文件夹以及子文件。

测试目录说明:

该目录下创建了需要测试的两级文件目录、以及按文件夹名创建的txt xlsx文件。

首先需要明确目的:根据文件目录、文件夹目录,输出所有文件夹名以及所有Excel文件名,因为无法获知目录深度,所以通过父文件夹层层遍历。

然后进行递归逻辑判断:

找整个递归的终止条件:递归应该在什么时候结束?

找返回值:应该给上一级返回什么信息?

本级递归应该做什么:在这一级递归中,应该完成什么任务?

递归逻辑思考:

1递归应该在什么时候终止?

应该在所有文件夹遍历后无子文件夹存在时终止。

2返回值:

子目录下文件及文件夹的长度(个数)

3本级递归应该完成的任务:

①判断目录下有无文件:如果有,进行遍历文件目录,判断文件扩展名,符合条件的打印输出。

②判断目录下有无文件夹,如果有,遍历文件夹目录,打印输出文件夹名。

定义参数Path_Find,初始目录为:C:\Users\admin\Desktop\递归查找

Step1: 判断文件目录长度

if(length>0)不为空,遍历文件目录,判断文件扩展名,打印输出满足条件的文件名。循环结束后,判断文件夹目录;

else为空,判断文件夹目录。

Step2 :判断文件夹目录长度

If(length>0),不为空,遍历文件夹目录,打印子文件夹名。再进行调用自身,继续判断文件目录,不断遍历循环。

Else,为空,不 *** 作。

其中Invoke Workflow File调用自己时,参数Path_Find为子文件夹路径

补充说明:NET有内置搜索方法,方法见微软官方文档 >

区别如下:

监督分类 (supervised classification)又称训练场地法,是以建立统计识别函数为理论基础,依据典型样本训练方法进行分类的技术。即根据已知训练区提供的样本,通过选择特征参数,求出特征参数作为决策规则,建立判别函数以对各待分类影像进行的图像分类,是模式识别的一种方法。要求训练区域具有典型性和代表性。判别准则若满足分类精度要求,则此准则成立;反之,需重新建立分类的决策规则,直至满足分类精度要求为止。常用算法有:判别分析、最大似然分析、特征分析、序贯分析和图形识别等。

非监督分类是以不同影像地物在特征空间中类别特征的差别为依据的一种无先验(已知)类别标准的图像分类,是以集群为理论基础,通过计算机对图像进行集聚统计分析的方法。根据待分类样本特征参数的统计特征,建立决策规则来进行分类。而不需事先知道类别特征。把各样本的空间分布按其相似性分割或合并成一群集,每一群集代表的地物类别,需经实地调查或与已知类型的地物加以比较才能确定。是模式识别的一种方法。一般算法有:回归分析、趋势分析、等混合距离法、集群分析、主成分分析和图形识别等。</ol>

调用带参数的脚本,需要首先设置,举例如下:

testpy按行解释如下:

脚本中有汉字的话,需要声明文件编码格式;

导入sys模块,这个模块是用来获取参数列表的;

sysargv是一个列表,第一个是文件名,之后依次是参数列表;

打印输出,这一步不需要多讲;

保存到c:\users\YYC\Desktop\testpy;

调用 *** 作步骤:

打开命令行;

输入python 文件名 第一个参数 第二个参数(参数之间用空格区分);

一定要注意参数个数,要以文件名开始。

总结

最简单的”hello world”程序。 它接受一个输入参数,将消息写入终端或作业日志,并且生成非永久输出。 CWL 文件以json或yam或两者的混合形式编写。 在本指南中,使用 yaml。 如果不熟悉 yaml, 参考 。

注意:缩进都不能使用制表符创建。

1st-toolcwl

接下来,创建一个名为 echo-job yml 的文件,用于描述运行的输入:

echo-jobyml

现在,用1st-toolcwl中的工具包装器调用 cwl-runner 。 在命令行中,输入echo-jobyml。 命令是 cwl-runner 1st-toolcwl echo-jobyml 。下面显示命令和输出。

命令 cwl-runner 1st-toolcwl echo-jobyml 是一个一般形式的例子,会经常遇到。 通用形式是 cwl-runner [tool-or-workflow-description] [input-job-settings]

这个工具没有正式的输出,因此 outputs 部分是一个空列表。

总结

问题

下面的示例演示了一些不同类型的输入参数,它们以不同的方式出现在命令行上:

首先,创建一个名为 inpcwl 的文件,包含以下内容:

inpcwl boolean | string | int |

创建一个名为 inp-job 的文件:

inp-jobyml boolean | string | int |

注意,“示例文件”作为 File 类型,必须作为对象含有 class: File 和 path 字段

接下来,使用 touch创建 whaletxt,在命令行输入 touch whaletxt ,然后在命令行使用 cwl-runner inpcwl inp-jobyml 命令,用工具包装器和输入对象调用 cwl-runner 。 下面描述了这两个命令以及命令行的输出:

字段是可选的,它表示输入参数是否出现以及如何出现在工具的命令行上。 如果缺少 inputBinding ,则该参数不会出现在命令行中。

让我们看看每个例子的细节。

类型被视为标记。 如果输入参数“ example flag”为“ true” ,则 prefix 将被添加到命令行。 如果 false,则不添加任何标记。

类型作为文本值出现在命令行上。 prefix 是可选的,如果提供了 prefix ,它将作为一个单独的参数出现在命令行的参数之前。 在上面的例子中,它被渲染为 --example-string hello 。

(和浮点数)类型出现在带有十进制文本形式表示的命令行上。 当选项 separate 为 false (默认值为 true)时,前缀和值组合成一个参数。 在上面的例子中,这被渲染为 -i42 。

类型作为文件的路径出现在命令行上。 当参数类型以问号 结尾时。 这表明参数是可选的。 在上面的例子中,它被渲染为 --file=/tmp/random/path/whaletxt 。 但是,如果输入中没有提供“ example file”参数,则命令行上将不会显示任何内容。

输入文件是只读的。 如果你想更新一个输入文件,你必须先将它复制到输出目录

position 的值用于确定参数应该出现在命令行的哪个位置。 位置是相对的,不是绝对的。 因此,位置不一定是连续的。如,位置为1,3,5的三个参数和1,2,3将产生同一个命令行。 多个参数可以具有相同的位置(使用参数名称断开关系) ,并且位置字段是可选的。 默认位置是0。

The baseCommand 字段总是出现在参数之前的最后一行命令中。

总结

工具的 outputs 是运行工具后应返回的输出参数列表。 每个参数都有一个 id , type 描述哪些类型的值对该参数有效。

当某个工具在 cwl 下运行时,起始的工作目录是一个指定的输出目录。 底层工具或脚本必须在输出目录中以创建文件的形式记录其结果。 CWL 工具返回的输出参数要么是输出文件本身,要么是检查这些文件的内容。

下面的示例演示如何返回从 tar 文件中提取的文件。

tarcwl

tar-jobyml

接下来,为这个例子创建一个 tar 文件,并在命令行中调用 cwl-runner

字段描述了如何设置每个输出参数的值。

glob 字段由输出目录中的文件名组成。 如果事先不知道文件名,可以使用通配符模式,比如 glob: 'txt' 。

总结

要捕获工具的标准输出流,请添加 stdout 字段,其中包含输出流所在的文件名。 然后在相应的输出参数上添加 type: stdout 。

stdoutcwl

echo-jobyml

调用 cwl-runner

Key Points

>

以上就是关于【Uipath】如何获取指定文件夹下所有子文件夹和所有Excel表的文件名全部的内容,包括:【Uipath】如何获取指定文件夹下所有子文件夹和所有Excel表的文件名、.net wwf 的问题、envi中classification workflow和feature extraction的区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9595845.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存