首页 > 解决方案 > 如何让一个 python 文件要求用户输入,然后将此输入传递给第二个 .py 文件?

问题描述

我有一个执行三个步骤的 analyze.py 文件:

  1. 它将 .csv 文件导入为 numpy 数组;
  2. 它要求用户输入(例如x=input ('Enter a number by which you want to multiply your array?')
  3. 使用该输入来执行一些数组操作(例如output_array=csv_array*x)。

在第 3 步之后,我想关闭现有窗口并自动运行第二个 .py 文件,该文件导入新数组 (output_array)。

换句话说,我想将用户输入变量从一个 py 文件传递​​到另一个。我该怎么做?

请注意,我知道类似的问题(例如,如何让一个 python 文件运行另一个?),但我无法猜测如何处理用户输入。

标签: pythonnumpyimportpython-import

解决方案


一种方法是使用subprocess.run执行第二个 python 文件。这样,您可以将输入数组作为参数传递给第二个 python 文件。

from subrocess import run
command = []
command.append(PYTHON_EXECUTABLE_PATH)
command.append(SECOND_FILE_PATH)
command.append(array_converted_to_string) # e.g. separate array elements with dashes '-'
completed_process = run(command, capture_output=True, text=True) 

因此,您需要实施三件事:

  • 将数组转换为字符串的函数
  • 进行转换的函数
  • 第二个 python 文件中的参数解析 # 标准库有 argparse 模块

推荐阅读