Передать переменную на вызов подпроцесса в python

Я пытаюсь передать свои переменные из raw_input в мою команду subprocess. Я новичок в python. Любая помощь он оценил бы.

#!/usr/bin/python import subprocess print "\nWhat user name" username = str(raw_input('username: ')) print "\nWhat is the user id" userid = int(raw_input('Enter user id: ')) print "\nWhat is the user\'s primary group?" primarygroup = int(raw_input('Enter group: ')) print "\nWhat is the user\'s secondary group?" secondarygroup = int(raw_input('Enter group: ')) subprocess.call(['useradd' '-m' '-g' _primarygroup '-G' _secondarygroup '-u' _userid _username]) print"\nThe user has been added" 

  • Установите Openpyxl на python2.5 в Windows
  • Приложение Django send_mail - подключайте его к интерфейсу Yeoman
  • Как изменить разделение между метками и метками оси в Matplotlib
  • Эффективное сопоставление строк в Apache Spark
  • Python `if x is not None` или` if not x is None '?
  • Присвоить значение отдельной ячейке в двухмерном массиве python
  • В python с использованием Flask, как я могу записать объект для загрузки?
  • Установка пипса для python3.3
  • 3 Solutions collect form web for “Передать переменную на вызов подпроцесса в python”

    Попробуйте разделить значения запятыми:

     subprocess.call(['useradd', '-m', '-g', _primarygroup, '-G', _secondarygroup, '-u', _userid, _username]) 

    См. http://docs.python.org/library/subprocess.html#subprocess.call. Он принимает массив, в котором первым аргументом является программа, а все остальные аргументы передаются в качестве аргументов в программу.

    Также не забудьте проверить возвращаемое значение функции для кода нулевого возврата, что означает «успех», если это не имеет значения для вашего скрипта, если пользователь был добавлен успешно или нет.

    Попробуйте добавить запятые между элементами списка:

     subprocess.call(['useradd', '-m', '-g', _primarygroup, '-G', _secondarygroup, \ '-u' ,_userid, _username]) 

    subprocess.call принимает те же аргументы, что и subprocess.Popen :

    args должен быть строкой или последовательностью аргументов программы.


    редактировать

    Чтобы сразу превратить все ваши аргументы в строки, вы могли бы составить список:

     args = ['useradd', '-m', '-g', _primarygroup, '-G', _secondarygroup, \ '-u' ,_userid, _username] str_args = [ str(x) for x in args ] 
     subprocess.call(['useradd', '-m','-g', _primarygroup, '-G', _secondarygroup, '-u', _userid, _username]) 

    Передача list на subprocess.call

    Interesting Posts

    sqlalchemy полиморфные многие-ко-многим

    Почему добавление конечной запятой после имени переменной делает ее кортежем?

    Как создать приложение osx / dmg из пакета python?

    Невозможно проанализировать TAB в файлах JSON

    Регистрация Django Redux: как изменить уникальный идентификатор от имени пользователя до электронной почты и использовать электронную почту в качестве логина

    Python: хотите поймать исключение, но не знаете, откуда оно взялось?

    Как получить полное доменное имя моего компьютера в Python?

    Python ImportError: невозможно импортировать имя __version__

    Хороший алгоритм обхода графа

    Проверить, существует ли значение в нескольких списках

    Создание pandas DataFrame из столбцов других DataFrames с похожими индексами

    Повторное диалоговое окно с Tkinter и Matplotlib в Mac OS X

    Как прочитать текстовый файл в строковой переменной в Python

    Ожидание выполнения задачи после KeyboardInterrupt в asyncio

    Используйте Python для извлечения элементов ListView из другого приложения

    Python - лучший язык программирования в мире.