iPython Shell to Execute both Python and traditional Shell commands
Wow, I just learned about this today: I am running gstat fairly frequently, for simulation purposes. Here is a nifty little way to run this from a shell that understands both python and traditional shell commands.
open such an shell typing
ipython -profile sh -pylab
Let’s assume you want to simulate 30 fields, then type:
import time for i in range(30): !gstat.exe "{name of gstat setup file}" !move "{gstat output file}" ${ "%03i" % (i,) } time.sleep(12)
Here are some explanations:
- the gstat output is copied into folders that are named 001, 002,… up to 030
- in order to invoke traditional shell commands they need to be preceded by an exclamation mark
- the time.sleep command is placed, because I found that for a new random seed to happen in gstat it needs to pause for a little while. I am not sure if this is correct or if there are better ways to do this. If you are aware of any, please let me know.
- a “$” is necessary in front of a python command if it is inside a shell command, so it is processed before it is passed to the shell.
- important: “cd” is to be treated like a python command! so do NOT use “!cd ..”
Big thanks to Thomas, master of many things and especially of PyMF!
This is so wicked! I also discovered folder actions in OSX yesterday. How awesome are these two discoveries? 🙂
Well, it’s weekend now, and three machines are running full throttle. Cheers!