Return values from one script to another script

前端 未结 3 1556
死守一世寂寞
死守一世寂寞 2021-01-01 06:12

I have the following script that will run each script (sequentially) in a directory:

import os

directory = []

for dirpath, dirnames, filenames in os.walk(\         


        
相关标签:
3条回答
  • 2021-01-01 06:41

    You can use the locals argument of execfile(). Write the scripts like this:

    def run_script():
        ret_value = 2
        return ret_value
    
    script_ret = run_script()
    

    And in your main script:

    script_locals = dict()
    execfile("path/to/script", dict(), script_locals)
    print(script_locals["script_ret"])
    
    0 讨论(0)
  • 2021-01-01 06:47

    I'm just curious if there is a way to return values so that the parent script can access the data.

    This is why you define functions and return values.

    Script 1 should include a function.

    def main():
        all the various bits of script 1 except the import 
        return x
    
    if __name__ == "__main__":
        x= main()
        print( x )
    

    Works the same as yours, but now can be used elsewhere

    Script 2 does this.

    import script1
    print script1.main()
    

    That's the way one script uses another.

    0 讨论(0)
  • 2021-01-01 07:03

    x is local to the script1 function, so it's not visible in the outer scope. If you put the code inside script1 at the top level of the file, it should work.

    0 讨论(0)
提交回复
热议问题