I am trying to run a windows executable via python3 and have below code snippet. The arguments can be of the form key-value
pair but its possible that few arguments may not have value like arg1
below. arg2
needs to have a value which is passed as creating arg2
variable below. The data.filepath needs to be used to construct arg2
# data.filepath resolves to \\server1\data\inputs\filename.txt
arg2 = "--arg2 {}".format(data.filepath)
child = subprocess.Popen([output_path, "--arg1", arg2, "--arg3 val3", "--arg4 val4"],
shell=False, stderr=subprocess.STDOUT)
child.communicate()[0]
rc = child.returncode
But seems that i am not following correct syntax and getting error as below
Throw location unknown (consider using BOOST_THROW_EXCEPTION)
Dynamic exception type: class boost::exception_detail::clone_impl<struct boost::exception_detail::error_info_injector<class boost::program_options::unknown_option> >
std::exception::what: unrecognised option '--arg2 \\server1\data\inputs\filename.txt'
Please let me know the right syntax in python to pass arguments to executables properly.