281

I have some lines of python code that I'm continuously copying/pasting into the python console. Is there a load command or something I can run? e.g. load file.py

3
  • 23
    import file. No .py extension. Commented Mar 12, 2011 at 1:31
  • 2
    When import file is used, variables in file cannot be accessed. Commented Jul 2, 2013 at 16:05
  • 7
    Actually, variable can be accessed. Try file.variable. Commented Jan 21, 2014 at 23:24

8 Answers 8

257

From the man page:

-i When a script is passed as first argument or the -c option is used, enter interactive mode after executing the script or the command. It does not read the $PYTHONSTARTUP file. This can be useful to inspect global variables or a stack trace when a script raises an exception.

So this should do what you want:

python -i file.py
Sign up to request clarification or add additional context in comments.

5 Comments

This is a great way to go if you are not yet in the console. Thanks for the tip Arafangion
how does one reload the file.py if the file has changed? python3.8+
The question was clearly to load the file when already in the console.
@RichieHH: A full decade of stack overflow visitors have found it a useful answer, however, and the original question might have been ambiguous and has since been edited...
@Asalle: For your question, you should put that up as a separate question, however take a look at stackoverflow.com/questions/31410419/python-reload-file
213

For Python 2 give execfile a try. (See other answers for Python 3)

execfile('file.py')

Example usage:
Let's use "copy con" to quickly create a small script file...

C:\junk>copy con execfile_example.py
a = [9, 42, 888]
b = len(a)
^Z
        1 file(s) copied.

...and then let's load this script like so:

C:\junk>\python27\python
Python 2.7.1 (r271:86832, Nov 27 2010, 18:30:46) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> execfile('execfile_example.py')
>>> a
[9, 42, 888]
>>> b
3
>>>

3 Comments

Can you explain your usage of copy con? From what I'm reading it's only used to copy files computerhope.com/copyhlp.htm
He copied from the console (treated as a file) to execfile_example.py. ^Z is end of file. It's just a way to get text into a file without opening an editor.
See the answer from @Arafangion if you are not yet in the console.
135

Python 3: new exec (execfile dropped) !

The execfile solution is valid only for Python 2. Python 3 dropped the execfile function - and promoted the exec statement to a builtin universal function. As the comment in Python 3.0's changelog and Hi-Angels comment suggest:

use

exec(open(<filename.py>).read())

instead of

execfile(<filename.py>)

4 Comments

if the file contains import statements e.g. import os, does exec() execute those statements? I'm trying this currently and the answer appears to be no...
it should be noted that filename.py is a string and so should be in quotes. i.e. exec(open("mypythonfile.py").read())
how do you supply any arguments that the program being executed needs?
Man that's ugly
37

From the shell command line:

python file.py

From the Python command line

import file

or

from file import *

5 Comments

And reload(file) when you've changed something in it.
That's from file import *, not import * from file
Does the file need to be a in specific director? I'm trying it with its full path and it's not working.
import directory.subdirectory.file
@Seth That's a relative path, isn't it? How about an absolute path?
25

You can just use an import statement:

from file import *

So, for example, if you had a file named my_script.py you'd load it like so:

from my_script import *

2 Comments

what does the * mean?
The * in this context means to import all names in the script into the current scope. So if you are running this directly from the python command prompt then any variables, functions, etc. that you defined in your script would be available in your python session.
6

Open command prompt in the folder in which you files to be imported are present. when you type 'python', python terminal will be opened. Now you can use

import script_name
Note: no .py extension to be used while importing.
How can I open a cmd window in a specific location?

Comments

5

If you're using IPython, you can simply run:

%load path/to/your/file.py

See http://ipython.org/ipython-doc/rel-1.1.0/interactive/tutorial.html

Comments

0

If your path environment variable contains Python (eg. C:\Python27\) you can run your py file simply from Windows command line (cmd). Howto here.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.