I would like to run some experiments over night and also find tomorrow morning how long it took for the experiments to finish executing. However, I would like to add as little overhead as possible so that the results from the experiments aren't affected too much by this extra timing.
I read from various resources that time script.py would be a good way to measure that. However I am not sure how time works and how much it can affect my experiments.
As far as I know, time Linux command simply asks kernel to provide information on the process that was run using it. Since kernel collects CPU and other information for all processes anyway, running time with a script doesn't impact the performance of the script itself (or its negligible) 
The above answer is correct but it may not be idempotent. A script time can be affected due to current load, data size it is processing, network and so on. 
I recommend using the Linux time command since it provides lot more information about the process. You can then run it under different loads and compare them.
What is the best way to find how long it took for a python script to finish executing without adding any extra over head?