Skip to main content
 首页 » 编程设计

python之在多个 python 模块中使用相同的数组

2025年05月04日8小虾米

我是 python 和编程的新手。我曾尝试搜索此内容,但未能找到答案。

我正在寻找将数据文件附加到数组并在多个 python 模块中使用它的最佳方法。作为一个 1 学期的理科学生,我知道在我的教育过程中我会多次使用它,所以我需要一些帮助,以找到更好的方法来做到这一点。

这是我第一学期小组项目的一个例子。我们被要求使用 python 模拟说话者来帮助完成不同的任务。我们得到了 impedans reading 以在数据文件中使用。数据文件有 3 列。频率、实阻抗、虚阻抗。

在第一个文件中,我们将其命名为 import_define.py 。我们有以下代码,从名为 data 的数据文件导入。

infile = open('data.dat', 'r') 
infile.readline() 
 
freq_list = [] 
real_list = [] 
imag_list = [] 
 
for line in infile: 
    split = line.split() 
    freq_list.append(float(split[0][:-1])) 
    real_list.append(float(split[1][:-1])) 
    imag_list.append(float(split[2])) 
infile.close() 
 
import numpy as np 
 
freqenzy = np.asarray(freq_list) 
real_imp = np.asarray(real_list) 
imag_imp = np.asarray(imag_list) 

然后我们在这个模块中使用了三个数组进行不同的计算。

现在我们想在不同的模块 plot.py 中使用这些数组,我们想在其中绘制来自这 3 个数组的一些数据,以及来自 import_define.py 中计算的不同数据

我们所做的是在 import_define.py 中定义 3 个返回数组的函数,如下所示:

def freq_func(): 
    return frequenzy 
 
def real_imp_func(): 
    return real_imp 
 
def imag_imp_func(): 
    return imag_imp 

在文件 plot.py 中,我们执行了以下操作以在这个新模块中导入和使用数组:

import import_define as imd 
 
freq = imd.freq_func() 
real = imd.real_imp_func() 
imag = imd.imag_imp_func() 

所以我想问一下,在使用 python 时是否有更好或更正确的方法来做到这一点。

请您参考如下方法:

数组变量在import_define模块中是全局变量,可以直接使用:

import import_define as imd 
print imd.frequenzy 

我认为您可以使用 numpy.loadtxt 从文件中快速加载数组,而无需 for 循环。