【问题标题】:Executing commands within application using python script?使用python脚本在应用程序中执行命令?
【发布时间】:2019-03-18 22:01:59
【问题描述】:

所以本质上我想要做的是编写一个 python 脚本,它将在应用程序自己的命令行中执行一系列命令。我知道子进程模块以及如何使用它在 shell 中一个接一个地执行命令,但是一旦使用脚本成功执行它,我似乎无法弄清楚如何在应用程序的 shell 中导航。例如,假设我正在使用应用程序“app”。我使用 shell 中的命令“runmod app”成功执行应用程序,然后在 shell 中启动应用程序,应用程序的内部命令行以“app>”开头。如何使用我的脚本从这个内部应用命令行执行命令?

【问题讨论】:

  • 你在寻找类似os.system('my command line argument')的东西吗?
  • 似乎您可以使用管道向其发送命令以执行(subprocess 支持它们)。
  • 许多应用程序都有交互式命令行,例如shpython。他们通常还可以选择以非交互方式评估命令,例如sh -c 'my command'python -c 'my command'。您应该检查您的应用程序是否可以执行相同的操作。如果不能,您可以运行应用程序的交互式命令行和write the commands to the process's stdin
  • 请出示相关代码。请说明遇到错误的位置。另见How to create a Minimal, Complete, and Verifiable example

标签: python linux


【解决方案1】:

你可以使用这个包,这是一个小型大学项目的小例子。

#proyecto.py
import os, sys
import argparse

parser = argparse.ArgumentParser()
# Define flags
parser.add_argument('-f', '--front', dest='front', help='Path to front view video in mp4, avi or wmv format')
parser.add_argument('-b', '--back', dest='back', help='Path to back view video in mp4, avi or wmv format')
parser.add_argument('-r', '--right', dest='right', help='Path to right view video in mp4, avi or wmv format')
parser.add_argument('-l', '--left', dest='left', help='Path to left view video in mp4, avi or wmv format')
....
....
....


args = parser.parse_args()
if validate_flags(args.front, args.back, args.left, args.right, args.video_output):
    front = args.front
    back = args.back
    left = args.left
    right = args.right
    video_out = args.video_output

它应该被执行

python proyecto.py -i video_ex.mp4 -o out.avi -s 480 --scale 0.5

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-01
    • 1970-01-01
    • 2018-02-07
    • 1970-01-01
    • 2010-12-06
    • 2014-11-17
    • 1970-01-01
    相关资源
    最近更新 更多