Los argumentos en línea de comandos está disponibles en una lista de cadenas: sys.argv. El módulo "oficial" para tratamiento de la línea de comando es argparse.
In [14]:
    
import sys
sys.argv
    
    Out[14]:
In [12]:
    
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--verbosity", help="increase output verbosity")
args = parser.parse_args()
if args.verbosity:
    print("verbosity turned on")
    
    
    
    
In [2]:
    
import os
os.name
    
    Out[2]:
In [3]:
    
os.environ
    
    Out[3]:
In [4]:
    
os.getenv('SHELL')
    
    Out[4]:
In [37]:
    
os.putenv('PATH', '/usr/bin:/usr/sbin:/usr/local/bin')
    
In [38]:
    
os.unsetenv('FOO')
    
In [4]:
    
os.chdir('/tmp/')
    
In [5]:
    
os.getcwd()
    
    Out[5]:
Crear un directorio:
In [33]:
    
os.mkdir('/tmp/foo-dir')
    
Borrar un directorio:
In [32]:
    
os.rmdir('/tmp/foo-dir')
    
In [11]:
    
os.stat('/etc/motd')
    
    Out[11]:
Crear una _pipe__:
In [14]:
    
os.pipe()
    
    Out[14]:
Crear un FIFO (una named pipe):
In [27]:
    
os.mkfifo('/tmp/fifo')
    
Comprobar el acceso a un fichero para el usuario efectivo:
In [15]:
    
os.access('/etc/motd', os.R_OK)
    
    Out[15]:
Cambiar los permisos de acceso a un fichero:
In [17]:
    
!touch /tmp/foo
    
In [20]:
    
import stat
os.chmod('/tmp/foo', stat.S_IWUSR)
    
Cambiar el propietario de un fichero:
In [22]:
    
uid = os.getuid()
gid = os.getgid()
os.chown('/tmp/foo', uid, gid)
    
Crear un enlace "duro":
In [30]:
    
os.link('/tmp/foo', '/tmp/bar')
    
Borrar un fichero:
In [34]:
    
os.remove('/tmp/bar')
    
Crear un enlace simbólico:
In [35]:
    
os.symlink('/tmp/foo', '/tmp/bar')
    
Listar el contenido de un directorio:
In [5]:
    
print(os.listdir('/'))
    
    
In [8]:
    
os.curdir
    
    Out[8]:
In [9]:
    
os.pardir
    
    Out[9]:
In [10]:
    
os.sep
    
    Out[10]:
In [11]:
    
os.devnull
    
    Out[11]:
Crear un subproceso:
In [36]:
    
os.fork()
    
    Out[36]:
Esperar la terminación de un subproceso (y recoger su valor de retorno);:
In [ ]:
    
os.wait()
    
Terminar (con error) el proceso actual:
In [ ]:
    
# os.abort()
    
Ejecutar un binario en el proceso actual:
In [ ]:
    
# os.execl('/bin/ls', '')
    
Ejecutar un binario en un proceso nuevo:
In [ ]:
    
os.spawnl('/bin/ls', '')
    
Ejecutar un binario en un subproceso y obtener la salida estándar:
In [7]:
    
os.system('ls /')
    
    Out[7]:
Obtener el PID actual:
In [20]:
    
os.getpid()
    
    Out[20]:
El PID del padre del proceso actual:
In [21]:
    
os.getppid()
    
    Out[21]:
UID del propietario del proceso actual:
In [10]:
    
os.getuid()
    
    Out[10]:
GID del propietario del proceso actual
In [11]:
    
os.getgid()
    
    Out[11]:
In [3]:
    
os.getgroups()
    
    Out[3]:
Identificador del grupo de procesos:
In [16]:
    
os.getpgid(0)
    
    Out[16]:
In [18]:
    
os.getpgrp()
    
    Out[18]:
Crear una sesión y asignar un identificador de grupo.
In [ ]:
    
os.setsid()
    
In [36]:
    
os.getsid(os.fork())
    
    Out[36]:
Creación de un subproceso con acceso a su entrada/salida: os.popen, os.popen2, os.popen3. Estas funciones son equivalentes a la llamadasal sistema POSIX, pero están obsoletas en favor del módulo subprocess.
In [3]:
    
print(os.popen('ls /').read())
    
    
Enviar una señal a un proceso (dado su PID):
In [10]:
    
import signal
child = os.fork()
os.kill(child, signal.SIGQUIT)
os.wait()
    
    Out[10]:
Enviar una señal a un grupo de procesos
In [11]:
    
pid = os.fork()
if not pid:
    os.setsid()
    os.system('sleep 100')
    os.exit(0)
os.killpg(pid, signal.SIGKILL)
os.wait()
    
    Out[11]:
In [12]:
    
def handler(num, *args):
    print num, args
signal.signal(signal.SIGQUIT, handler)
    
In [13]:
    
os.getlogin()
    
    Out[13]:
In [ ]: