在python之前完成其他运行命令

时间:2014-10-07 12:31:02

标签: python scripting python-multiprocessing

我已经问过了,很少有人给出了很好的建议但是因为我是初学者,所以对我来说还有很多未知数。因此,我决定再次寻求帮助而不会给出错误的代码。

我需要一个脚本,它会将副本文件执行到目录,而另一个脚本仍在运行。 基本上我运行第一个命令,它生成文件(直到用户按Enter键),然后这些文件消失(自动删除) 我想要的是复制这些文件(也不必按“Enter”)。 我用bash制作但是我想在python上实现这一点。请参阅以下内容:

while kill -0 $! 2>/dev/null;do
cp -v /tmp/directory/* /tmp/
done

1 个答案:

答案 0 :(得分:0)

如果第一个脚本纯粹是命令行:它应该可以使用python脚本完全管理。

一般架构:

  • python脚本首先使用subprocess模块
  • 启动
  • 从第一个脚本读取输出,直到收到要求按Enter
  • 的消息
  • 将所有文件从源目录复制到目标目录
  • \r发送到第一个脚本输入
  • 等待第一个脚本终止
  • 离开

一般要求:

  • 第一个脚本必须是纯粹的CLI
  • 第一个脚本必须写入标准输出/错误并从标准输入读取 - 如果它读取/写入物理终端({/ 1}}在Unix / Linux或/dev/tty上Dos / Windows),赢了
  • 处理结束必须可在标准输出/错误中识别
  • 如果上述两项要求未得到满足,唯一的办法就是等待一段时间

可选操作:

  • 如果第一个脚本中有其他交互(读取和/或写入),则需要在脚本中添加重定向,这当然是可行的,但会更难一点

配置:

  • 要运行的命令
  • 表示第一个程序已完成处理的字符串(来自命令输出)
  • 源目录
  • 目标目录
  • 要复制的文件名的模式
  • 如果时间定义且输出中没有可识别的字符串:复制前等待的延迟

这样的脚本应该易于编写和测试,并且能够根据需要管理第一个脚本。

编辑:这是一个这样的脚本的例子,仍然没有超时管理。

con: