Могу ли я запускать команды командной строки в скрипте Python?

Извините, я вроде как новичок в этом:

В основном я скачал этот пакет, который имеет дело с текстовыми файлами, которые запускаются из терминала, но нужная мне команда принимает два аргумента. Мне также нужно делать это много раз (5000+).

Мне нужно получить эти аргументы с помощью скрипта Python, и я могу зацикливать его много раз с помощью Python. Так мог ли я получить аргументы в скрипте python, запустить строку командной строки и зациклить ее? Как?

Спасибо!

4
задан 12 June 2013 в 16:49

2 ответа

Вот рыба...

import popen2, sys

def loopy_subprocess(arga, argb, iterations, command = 'echo'):
    for i in range(int(iterations)):
        p = popen2.Popen4((command, arga, argb))
        p.wait()
        print(p.fromchild.readlines())

if __name__ == '__main__':
    try:
        arga = sys.argv[1]
        argb = sys.argv[2]
        iterations = sys.argv[3]
    except:
        print("You didn't supply enough arguments\n"+\
              "Usage: python script.py arga argb iterations\n"+\
              "Warning - unsafe.  No input validation and doesn't account for spaces in arguments\n"+\
              "Optionally supply the command to be run as a final argument\n")
        quit()
    try:
        command = sys.argv[4]
        loopy_subprocess(arga, argb, iterations, command)
    except:
        loopy_subprocess(arga, argb, iterations)
5
ответ дан 12 June 2013 в 16:49

Вероятно, самый легкий способ сделать это должно получить доступ к параметрам командной строки из Python и также сделать цикл в рамках Python. Вы могли изучить sys.argv от sys модуль для доступа к параметрам командной строки. Если я вспоминаю правильно, что это должно позволить Вам делать что-то как:

python scriptname.py argument1 argument2

и затем получите доступ к аргументам в рамках использования scriptname.py

import sys
arg_1 = sys.argv[1]
arg_2 = sys.argv[2]

Вы могли также разработать целую стопку команд легко с инструментом как утес (Платформа Формулировки Интерфейса командной строки).

3
ответ дан 12 June 2013 в 16:49

Другие вопросы по тегам:

Похожие вопросы: