Python получает список из вызываемого файла Python
В task2.py
Я выполняю файл Python, как это:
text = os.system("python new_image.py --image_file " + "/home/roots/" + str(nc) + ".jpg --num_top_predictions 1")
Основные линии new_image.py
выглядит как
def main(_):
maybe_download_and_extract()
image = (FLAGS.image_file if FLAGS.image_file else
os.path.join(FLAGS.model_dir, 'cropped_panda.jpg'))
score = run_inference_on_image(image)
return score
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument(
'--model_dir',
type=str,
default='/tmp/imagenet',
help="""\
Path to classify_image_graph_def.pb,
imagenet_synset_to_human_label_map.txt, and
imagenet_2012_challenge_label_map_proto.pbtxt.\
"""
)
parser.add_argument(
'--image_file',
type=str,
default='',
help='Absolute path to image file.'
)
parser.add_argument(
'--num_top_predictions',
type=int,
default=5,
help='Display this many predictions.'
)
FLAGS, unparsed = parser.parse_known_args()
tf.app.run(main=main, argv=[sys.argv[0]] + unparsed)
Я модифицировал classify_image.py
в тензорных моделях имагенет такой, что run_inference_on_image()
возвращает список. Я хотел бы получить этот список в task2.py
, Как я это сделаю?
1 ответ
Самый простой способ - сохранить список как временный pickle
файл в new_image.py
и загрузить pickle
файл в task2.py
, т.е.
# In new_image.py
import pickle
picklefile = open('temp.pkl', 'wb')
# Dump list to the pickle file
pickle.dump(listvariable, picklefile)
picklefile.close()
А также,
# In task2.py
import pickle
picklefile = open('temp.pkl', 'rb')
newlist_variable = pickle.load(picklefile)
picklefile.close()
Я не знаю, есть ли способ разделить динамические переменные между двумя процессами Python. Но если есть, я бы хотел знать!