Я пытаюсь импортировать программу и использовать в ней пару функций, но у меня возникла проблема, связанная с argparse.
В функциях, которые я хотел бы использовать, создатель передает свои аргументы синтаксического анализатора этой функции следующим образом.
args = parser.parse_args()
def write_flash(esp, args):
if args.compress is None and not args.no_compress:
args.compress = not args.no_stub
# verify file sizes fit in flash
flash_end = flash_size_bytes(args.flash_size)
for address, argfile in args.addr_filename:
argfile.seek(0,2) # seek to end
if address + argfile.tell() > flash_end:
Мне интересно, как я могу использовать эту функцию в другой программе, которую я пишу. Могу ли я как-то создать объект parser.parse_args () с такими же аргументами, как у него? Одна вещь, о которой я подумал, - это использовать subprocess.popen, чтобы запустить его так:
p = subprocess.Popen(['python', 'esptool.py', '--port',
'COM3', 'write_flash', '0x00000', 'boot_v1.7.bin', '0xfc000', 'esp_init_data_ default_v08.bin', '0xfb000',
'blank.bin', '0x01000', 'user1.1024.new.2.bin'])
Но это кажется не идеальным. Я действительно заблудился о том, как подойти к argparse в целом, и любая помощь будет высоко оценена, спасибо.