如何连接主模块中的输入模块和功能模块,我们可以从函数返回列表吗?

2024-10-04 11:25:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有三个模块:GetInput、Main和Converter。在GetInput文件中,所有的输入值和excel数据都以列表的形式存在。在转换器文件中,我使用来自Getinput文件的那些输入值,在主文件中,我将这两个文件连接到这里。我这样做是为了让我的代码看起来更有条理。 获取输入.py:

import pandas as pd
import numpy as np
import time

def getInputs():
    df = pd.read_excel('input.xlsx')
    actual = df['actual'].values.tolist()
    schedule = df['schedule'].values.tolist()
    freq = df['frequency'].values.tolist()
    ACP = df['acp'].values.tolist()


    modelInput = {
        'actual': actual, 'schedule': schedule, 'freq': freq, 'ACP': ACP,'df' : df
    }
    return modelInput

转换器.py

import pandas as pd
def fun(modelInput):
    underdraw = []
    overdraw = []
    for i,j, in zip(schedule, actual):
        dev = j - i
        if dev < 0:
            underdraw.append(dev)
        else:
            underdraw.append(0)

        if dev > 0:
            overdraw.append(dev)
        else:
            overdraw.append(0)

    df['underdraw'] = pd.Series(underdraw)
    df['overdraw'] = pd.Series(overdraw)
    df.to_excel('mainfile.xlsx')

主.py

import pandas as pd
import numpy as np
from convert import *
from GetInputs import *

def fun1():
    inpu = getInputs()
    con = fun(inpu)
fun1()

当我在单个模块中运行它时,整个程序都能工作,但当我尝试将代码划分为不同的模块时,它会抛出错误。基本上,它在GetInput.pyConverter.py(df未定义)文件中抛出错误。我知道这是一件很基本的事情,但我不知道如何使它工作。这个程序没有需要的输出,当我在一个文件中运行它时,我已经得到了一个输出。我只想按照上面提到的格式划分代码:GetIput文件、转换器文件和主文件


Tags: 模块文件pydevimportdfaspd
1条回答
网友
1楼 · 发布于 2024-10-04 11:25:47

将所有文件保存在同一目录中,或者使用os模块在主代码的顶部提到文件路径

您在主代码中拼错了以下内容:

from convert import *
from GetInputs import *

应该是:

from Converter import *
from GetInput import *

我使用以下方法对此进行了测试:

main模块.py

from Converter import *
from GetInputs import *

def fun1():
    inpu = getInputs()
    con = fun(inpu)
fun1()

转换器.py

import pandas as pd
def fun(modelInput):
    print("HIE" + modelInput)

GetInputs.py

def getInputs():
    return "modelInput"

相关问题 更多 >