Мне нужно выполнить следующую команду через python. rtl2gds является инструментом, который читает в 2-х параметров: Путь к файлу и имя модуляПередача аргументов в os.system
rtl2gds -rtl=/home/users/name/file.v -rtl_top=module_name -syn
Я читаю на пути к имени файла и модуля от пользователя через argparse, как показано ниже:
parser = argparse.ArgumentParser(description='Read in a file..')
parser.add_argument('fileread', type=argparse.FileType('r'), help='Enter the file path')
parser.add_argument('-e', help='Enter the module name', dest='module_name')
args = parser.parse_args()
os.system("rtl2gds -rtl=args.fileread -rtl_top=args.module_name -syn")
Но путь к файлу, который считывается в args.fileread, не попадает в os.system, когда я вызываю -rtl = args.fileread. Вместо этого, args.fileread сам принимается за имя файла, а инструмент выдает ошибку.
Я уверен, что есть способ прочитать аргументы командной строки в os.system или какой-либо другой функции (может быть подпроцессом? - но не мог понять, как это сделать). Любая помощь приветствуется.
Возможный дубликат [Вызов внешней команды в Python] (http://stackoverflow.com/questions/89228/calling-an-external-command-in-python) – Wolf