How can I execute a Python script file with another script in Python 3?

204    Asked by DavidEdmunds in Python , Asked on Jul 22, 2024

 I am currently engaged as a software developer and I am currently working on a particular project that can implement a series of Python scripts that would process data files. My project was initially developed by using Python 2, where I frequently used the execfile function to run the other script. Now I am trying to upgrade my particular project to Python 3. 

In one of my main scripts, I have the following code which can work perfectly in Python 2:

Execfile(‘script_to_run.py’)

Why is this particular line of code not working in Python 3? How can I achieve the same functionality in Python 3? 

Answered by Claudine Tippins

In the context of Python programming language, in Python 2 the execfile function would allow the implementation of a Python script file within the current interpreter session. However, Python 3 would remove the execfile due to changes in the implementation model and improved handling of the file operations and namespaces.


To replicate functionality in Python 3, you would need to:

Open the file which contains the Python-based script.

Read the content of the particular file.

Now implement the read content by using the exec function, which can implement dynamically created Python-based code.

Python 2 code using execfile
# script_to_run.py
Print(“This script is executed.”)
# main_script.py
Execfile(‘script_to_run.py’)
Python 3 code using exec:
Script to be implemented (script_to_run.ply)
# script_to_run.py
Print(“This script is executed.”)
Main script (main_script.py)
# main_script.py
# Function to execute another script
Def exec_script(file_path):
    Try:
        # Open the script file in read mode
        With open(file_path, ‘r’) as file:
            # Read the content of the script file
            Script_content = file.read()
            # Optionally, define a global and local dictionary for exec
            Global_dict = globals()
            Local_dict = locals()
            # Execute the content of the script file
            Exec(script_content, global_dict, local_dict)
            Print(f”Successfully executed {file_path}”)
    Except FileNotFoundError:
        Print(f”Error: The file {file_path} was not found.”)
    Except Exception as e:
        Print(f”Error while executing {file_path}: {e}”)
# Path to the script to be executed
Script_path = ‘script_to_run.py’
# Execute the script
Exec_script(script_path)
# Additional code in main_script.py
Print(“This is main_script.py”)

This code structure would ensure that the script _to_run.py file will implemented within the main_script.py script, which would replicate the functionality of execfile in the Python 3 environment.



Your Answer

Answer (1)

Instance-Store AMIs: these are uncommon and, in general, I don't advise novices to use them. They are kept in an S3 bucket with a unique format and contain a copy of the root instance-store volume along with some information.


EBS Boot AMIs: these include metadata such as architecture, AMI name, block device mappings, and kernel, together with an EBS snapshot of the root disk drift boss. You can create an EBS boot AMI by registering with an EBS snapshot, using the necessary metadata, and making sure the system boots correctly with the relevant AKI ID.

2 Weeks

Interviews

Parent Categories