在第二个脚本函数中传递来自第一个 python 脚本主函数的数据

     2023-02-19     289

关键词:

【中文标题】在第二个脚本函数中传递来自第一个 python 脚本主函数的数据【英文标题】:Passing the data from a first python scripts main function in a second scripts function 【发布时间】:2020-05-06 04:39:57 【问题描述】:

我需要在第二个脚本的函数中使用第一个脚本中的一些数据,但不确定在我的情况下如何正确执行此操作。我希望有一个简单的答案,但不幸的是,我被困在了这个问题上。

第一个脚本的结尾是

def main():

  data = create_data()
  addresses = data['addresses']
  API_key = data['API_key']
  distance_matrix = create_distance_matrix(data)
  print(distance_matrix)
if __name__ == '__main__':
  main()

程序会打印出类似的东西

[[0, 486348, 155151, 780965, 761151, 254349], [486474, 0, 594180, 422167, 590566, 262043], [155151, 594054, 0, 888671, 868857, 362056], [781506, 421262, 889213, 0, 295098, 495764], [761786, 590592, 869492, 295059, 0, 612583], [254304, 260708, 362011, 495807, 612769, 0]]

我可以将此程序命名为“scriptA”

在第二个脚本中,我想使用“scriptB”

import scriptA

并修改脚本B中手动输入的函数

def create_data_model():
    """Stores the data for the problem."""
    data = 
    data['distance_matrix'] = [[0, 383429, 118275, 223206, 209301, 405420], [383498, 0, 413976, 422167, 590566, 262043], [117759, 412902, 0, 335203, 315389, 355002], [223635, 421262, 335387, 0, 295098, 495764], [210227, 590592, 315667, 294775, 0, 612583], [405701, 260708, 354835, 495807, 612769, 0]]  # yapf: disable
    data['num_vehicles'] = 1
    data['depot'] = 0
    return data

自动包含第一个脚本中的矩阵。但我不确定这样做的正确代码。我试过做

data['distance_matrix'] = scriptA.main()

但这并不能保持我需要的正确对象类型。一些有关使用所需语法的指导将不胜感激。

如果进一步的上下文有用,我正在使用的 scriptAscriptB 与示例代码非常相似 https://developers.google.com/optimization/routing/vrp 和 https://developers.google.com/optimization/routing/tsp 分别在 Google OR-Tools 文档中。

【问题讨论】:

这是因为您使用的是 print 而不是在第一个函数中返回。此外,不需要: if name == 'main': main() 好的,我认为这有帮助 【参考方案1】:

您必须从 scriptA 修改 main 函数。您应该返回矩阵而不是打印它。 更新代码:

def main():
  data = create_data()
  addresses = data['addresses']
  API_key = data['API_key']
  distance_matrix = create_distance_matrix(data)
  return distance_matrix

然后调用scriptA.main() 将返回数组给你。

【讨论】:

在第二个查询中查询两个单独的表传递结果,同时仅在第二个查询返回 null 时保留第一个查询的结果

】在第二个查询中查询两个单独的表传递结果,同时仅在第二个查询返回null时保留第一个查询的结果【英文标题】:Querytwoseparatetablespassingresultswithinthesecondquerywhileonlykeepingtheresultsofthefirstqueryifthesecondqueryreturnsnull【发布时间】:2... 查看详情

第二个参数是获取shell脚本函数中第一个参数的内容[重复]

】第二个参数是获取shell脚本函数中第一个参数的内容[重复]【英文标题】:Secondparameterisgettingthecontentofthefirstparameterinshellscriptfunction[duplicate]【发布时间】:2020-10-2312:42:15【问题描述】:我在shell脚本中创建一个函数,我需要传... 查看详情

在同一页面中使用两个 BLoC 并在第二个 BLoC 中传递第一个 BLoC 的状态

】在同一页面中使用两个BLoC并在第二个BLoC中传递第一个BLoC的状态【英文标题】:UsingtwoBLoCsinsamepageandpassingfirstBLoC\'sstateinsecondBLoC【发布时间】:2021-02-1219:06:48【问题描述】:我这几天一直在学习Flutter中的BlocPattern。我有一个页... 查看详情

如果需要第一个函数,如何在脚本中执行第二个函数?

】如果需要第一个函数,如何在脚本中执行第二个函数?【英文标题】:Howdoyouexecutethesecondfunctioninascriptifitneedsthefirstfunction?【发布时间】:2017-07-2018:19:42【问题描述】:我认为这是基本的,我已经看到了我所问问题的多个版本... 查看详情

在第二个寡妇中单击按钮打印(文本)作为标签(更新标签)后,python和kivy在第一个窗口中输入文本

】在第二个寡妇中单击按钮打印(文本)作为标签(更新标签)后,python和kivy在第一个窗口中输入文本【英文标题】:pythonandkivyinputtextinfirstwindowsafterclickbuttonprint(text)aslabel(updatelabel)insecondwidows【发布时间】:2021-04-2102:17:31【问... 查看详情

python高阶函数的使用

...map函数有两个参数,第一个参数要求传递一个函数对象,第二个参数要求传递一个可迭代序列。直接看案例运行结果:3.reduce高阶函数reduce高阶函数位于functools模块中,使用前需要先进行导入。reduce高阶函数可以有三个参数,第... 查看详情

如果一个表的列等于第二个表中的列,则在第三个表中插入值,python - mysql

】如果一个表的列等于第二个表中的列,则在第三个表中插入值,python-mysql【英文标题】:Ifatablehascolumnsequaltocolumnsinasecondtableinsertvaluesinathirdtable,python-mysql【发布时间】:2021-09-2100:03:54【问题描述】:我的数据库中有3个表:借... 查看详情

RxJs:一个接一个地执行 3 个 observables 并在第二个请求中使用第一个结果,在第三个请求中使用第一个和第二个结果

】RxJs:一个接一个地执行3个observables并在第二个请求中使用第一个结果,在第三个请求中使用第一个和第二个结果【英文标题】:RxJs:Executing3observablesoneafteranotherandusingresultsfromfirstinsecond,andfirstandsecondinthirdrequests【发布时间】:2... 查看详情

c语言试题190之实现函数在第一个参数中进行查找,并返回匹配第二个参数所包含的字符的数目

查看详情

c语言试题190之实现函数在第一个参数中进行查找,并返回匹配第二个参数所包含的字符的数目

查看详情

c语言试题190之实现函数在第一个参数中进行查找,并返回匹配第二个参数所包含的字符的数目

查看详情

使用脚本中的参数调用第二个脚本

】使用脚本中的参数调用第二个脚本【英文标题】:Invokeasecondscriptwithargumentsfromascript【发布时间】:2012-10-0218:18:12【问题描述】:我有一个脚本,它读取一个配置文件,该文件生成一组名称值对,我想将它们作为参数传递给第... 查看详情

与powershell的第二个浏览器选项卡进行交互(代码片段)

...没有问题的情况下打开第二个选项卡但是传递凭据的代码在第一个选项卡中运行而不是第二个标签。为了验证这一点,我快速点击第一个选项卡上的后退按钮,在第二个选项卡打开并观看之前返回到登录屏幕,即使第二个选项卡... 查看详情

两次调用函数,但在第二次,函数返回的第一个列表在 python 中作为参数

】两次调用函数,但在第二次,函数返回的第一个列表在python中作为参数【英文标题】:Callingafunctiontwicebutinsecondtime,firstlistwhichwasreturnedbythefunctiongoesasargumentinpython【发布时间】:2021-12-0114:38:25【问题描述】:在函数输入中,当... 查看详情

通过单击第一个网站中的按钮在第二个网站上运行 jQuery

】通过单击第一个网站中的按钮在第二个网站上运行jQuery【英文标题】:RunjQueryonsecondwebsitebyclickingthebuttoninfirstwebsite【发布时间】:2018-03-1603:19:17【问题描述】:我有一个场景,在第一个网站我有一个链接,第二个网站有一些jQu... 查看详情

Ext JS - 根据第一个网格中的行选择在第二个网格中加载值

】ExtJS-根据第一个网格中的行选择在第二个网格中加载值【英文标题】:ExtJS-loadingvaluesinsecondgridbasedonrowselectioninfirstgrid【发布时间】:2016-02-2705:18:42【问题描述】:我有2个网格...在第一个网格中,我展示了一些细节,但第二个... 查看详情

如何在第二个 ViewController 表格视图中使用模型快速显示第一个 ViewController 值

】如何在第二个ViewController表格视图中使用模型快速显示第一个ViewController值【英文标题】:HowtodisplayfirstViewControllervaluesinSecondViewControllertableviewwithModelinswift【发布时间】:2020-05-2817:52:22【问题描述】:我已经用NSObject创建了地址... 查看详情

shell脚本学习

...n是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2$#传递给脚本或函数的参数个数$*传递给脚本或函数的所有参数[email protected]传递给脚本或函数 查看详情