在许多输入上运行程序的工具

each的Python项目详细描述


每个命令都是一个shell命令,用于运行健壮的、并行的、具有良好反馈机制的循环。

它是为“中等规模”的实验而优化的,这些实验太小了,而且 特别是在一个适当的集群上运行(或者您只是没有拥有一个适当的集群。我不知道, 但是速度太慢,从头开始会很痛苦,理想情况下, 足够并行,如果碰巧有一个16核服务器在上面运行它们,那么您真的希望使用所有16核。

它们的主要用途是以下bash for loop的更健壮版本:

for f in "$source"/* ;doDEST="$destination"/$(basename $f)
    mkdir -p "$DEST""$command" < "$f" > "$DEST/out"2> "$DEST/err"echo$? > "$DEST/status"done

可以使用以下每种方法编写相同的文件:

each "$source""$command" --destination="$destination"

除了简短易读之外,每次写这篇文章都能让你:

  1. 自动并行。您可以控制使用--processes=n运行多少个进程, 但它默认使用除一个可用内核之外的所有内核(或在单核计算机上使用一个)。
  2. 自动恢复-如果每一个死亡,当它下次启动时,它将从它停止的地方恢复。
  3. 对进度的反馈,以及对流程何时完成的良好预测分析(仍在进行中,但基本情况已存在)。

稍后,您还将获得重试错误的良好逻辑,但我还没有写那一点。

每一个都还很早,所以它可能有一些粗糙的边缘,但它是很好的测试,已经使我的生活大大改善。

用法

用法是:

each some-input-directory 'some command to run' --destination="output directory"

命令可以是任意的shell命令(默认情况下由$SHELL -c 'some command to run'运行)。

默认情况下,文件的内容将传递给子进程的stdin。如果要按名称传递文件,可以使用特殊字符串{}。 如果这样做,将用要处理的文件替换它(用它的绝对路径名),stdin将为空。

可以从each --help获得更高级的使用选项。

常见问题

为什么?

我有一堆实验,基本上是“运行这个长时间运行的任务 这些文件中的每一个任务都有不同程度的片状,而我 一直发现自己在写不好的版本,所以我想我会解决 这个问题一劳永逸。

Bash Loop版本的主要功能:

  1. 你不会冒险去学怎么写比你想写的更多的bash。
  2. 如果你杀了它,它会从停止的地方恢复。
  3. 自动并行
  4. 你会得到一个很酷的进度条。
  5. 当我开始编写更好的重试功能时,您将免费获得这些功能。

如何安装?

pip install each

它运行在什么上?

可能有什么不合时宜的。我已经在linux(包括wsl、windows)上开发并测试了它 10个Linux子系统),但它可能在OSX上未经修改就可以工作。不太可能成功 窗户。如果有人想提供windows支持,我并不反对,但我不会 是我自己写的,这是一种相当单一的工具。

我应该用这个吗?

呃,也许吧。我觉得它很有帮助,但可能对我的 用法。

如果你尝试它,但它不适合你,提出一个问题或公关。 我很高兴它通常是有用的,但我不打算投入太多 支持它的时间。

你能让它在python 2上工作吗?

编号

你能在更宽松的许可证下释放它吗?

另外编号

我不喜欢这些答案。我应该用什么代替?

我不知道。也许是bashreduce

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java有没有任何安卓开发方法可以在屏幕上找到最大单位?   java中的客户机/服务器:程序在输入第二个文件名时卡住   基于java XML上下文的bean无法执行构造函数注入:未找到默认构造函数   java在应用程序中显示通知或作出反应   java如何使spring boot在多对多关系中创建的id成为主键   java有没有办法用JNI设置DirectByteBuffer内存?   java如何为连接池配置Hibernate、Spring和ApacheDBCP?   使用double而不是int的java循环   java我希望输入不区分大小写   java如何在JEditorPane中显示charset=windows1252的html   在Java中,什么会导致抛出异常FileNotFoundException?   面向对象Java哈希集实现设计   用于打印字母的java For循环   java在测试期间向类构造函数插入特定值   SpringJavaMongoDB类NotFoundException:org。springframework。数据转换收集工厂   java将SOAP XML字符串转换为对象或仅读取其内容   java如何将单个POJO类映射到多个表   java中的数组ArrayIndex越界异常