将 python 文件的输入输入到另一个文件

Taking an input from python file to another

我制作了一个文件,该文件依次转向其他文件和 运行 他们的脚本。这些文件中的大多数都有一个共同的参数,即输入。当我导入它时,它(当然)会请求输入。我希望避免重新输入某些内容。

示例:

MainFile.py:

import Base_params
import Liner

Base_params.py:

no_of_slices=int(input('Enter no. of Slices'))
sub_slice=int(input('enter sub slice'))

Liner.py:

from PIL import Image
import shutil
from Base_params import no_of_slices, sub_slice

简短的回答是 Python 已经完全按照您想要的方式为您处理了。要了解原因,让我给您介绍一下 import system.

的一些背景知识

第一次导入模块时,会创建一个空模块对象。然后它的代码被执行,你绑定的任何名字都被放在它的字典中,它也是模块的全局命名空间。在您的情况下,这意味着 运行 使用 Base_params.py 的代码并根据用户输入创建名称 no_of_slicessub_slice

随后导入同一个模块时,它的代码是不是运行(这是你关心的)。相反,返回来自 sys.modules 的对象引用。导入语句总是在尝试再次 运行 之前检查模块是否已经加载。

在 运行 模块代码之前创建空模块对象(并将其放在 sys.modules 中非常重要的原因是大多数模块都具有递归导入。将模块标记为已导入确保任何无限循环在它们发生之前被打破。

在您的情况下,定义一个要求用户输入的常量模块是完全可以的。第一个执行 import Base_params 的模块将触发 input 语句的执行。所有进一步出现的 import Base_params 只会将 sys.modules['Base_params'] 绑定到您的命名空间中的任何名称 Base_paramsno_of_slicessub_slice.

不会有第二次查询

我在整个过程中提供的官方文档的链接将解释我遗漏的任何内容。