首页 > 解决方案 > 循环遍历文件 1 中的变量并在文件 2 中执行

问题描述

背景:

我正在创建一个报告,该报告将发送给组织中的各个用户。

我有 3 个单独的文件来执行此操作。

该解决方案工作正常,但是它只是为列表中的最后一个用户一遍又一遍地生成相同的文件。正在保存的变量只是最后一个正在执行的变量。它应该为每个用户生成不同的文件。我不确定这是否是嵌套循环问题,但请参阅下文了解更多上下文:


文件 1) subscribers.py - 电子邮件列表:

subscriber_list = ['abe@gmail.com','obama@gmail.com','clinton@gmail.com']

文件 2) start.py - 通过订阅者循环执行第三个文件:

import subscribers


for user in subscribers.subscriber_list :
    login_input = user
    exec(open('produce_report.py').read())  

文件 3) produce_report.py - 运行一系列基于 login_input 的逻辑,为简单起见,我只打印该值。

import subscribers 
import start


login_input = start.login_input

print (start.login_input)

预期结果:

结果我得到:

标签: pythonloops

解决方案


而不是导入开始,尝试import __main__然后__main__.login_input

import __main__只导入可执行脚本,因此第四个文件import __main__start.py再次导入。最好的办法是在第四个文件中编写一个函数并传入参数。为此,您需要将函数导入produce_report.

还有另一种选择。既然您将变量保存在 中start.py,为什么不将变量从start.py第四个文件中携带呢?


推荐阅读