summaryrefslogtreecommitdiffstats
path: root/Lib/os.py
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1993-11-08 15:05:21 (GMT)
committerGuido van Rossum <guido@python.org>1993-11-08 15:05:21 (GMT)
commite65cce5eec23812d77a54095209c923937cc3c92 (patch)
treeed0b87870ad9c6278e43acf63685b8823cce018c /Lib/os.py
parentdb65a6ce556b1e311d03837fbf85ca52ef2c5d07 (diff)
downloadcpython-e65cce5eec23812d77a54095209c923937cc3c92.zip
cpython-e65cce5eec23812d77a54095209c923937cc3c92.tar.gz
cpython-e65cce5eec23812d77a54095209c923937cc3c92.tar.bz2
* string.py: added rindex(), rfind(); changed index() to interpret
negative start indices starting from the right. * ftplib.py: debug() -> set_debuglevel(); change demo to use __init__(). * os.py: added execl, execlp, and execvp. * lambda.py: removed (now that we have built-in map, reduce, bagof, lambda) * test_b{1,2}.py, testall.out: added tests for bagof, lambda, map, reduce * commands.py: use os, not posix * test_grammar.py: make it easy to disable non-portable int overflow tests * dis.py: don't abuse range()
Diffstat (limited to 'Lib/os.py')
-rw-r--r--Lib/os.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/Lib/os.py b/Lib/os.py
index dc1ef5a..7322fa5 100644
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -38,3 +38,33 @@ except ImportError:
import macpath
path = macpath
del macpath
+
+def execl(file, *args):
+ execv(file, args)
+
+def execle(file, *args):
+ env = args[-1]
+ execve(file, args[:-1], env)
+
+def execlp(file, *args):
+ execvp(file, args)
+
+def execvp(file, args):
+ if '/' in file:
+ execv(file, args)
+ return
+ ENOENT = 2
+ if environ.has_key('PATH'):
+ import string
+ PATH = string.splitfields(environ['PATH'], ':')
+ else:
+ PATH = ['', '/bin', '/usr/bin']
+ exc, arg = (ENOENT, 'No such file or directory')
+ for dir in PATH:
+ fullname = path.join(dir, file)
+ try:
+ execv(fullname, args)
+ except error, (errno, msg):
+ if errno != ENOENT:
+ exc, arg = error, (errno, msg)
+ raise exc, arg