#acl AdminGroup:read,write EditorGroup:read All:read #format wiki #language en #pragma section-numbers off SiaProgrammingPython <> = Interaction with the operating system = The modules sys and os provide the basic interface to the operating system. The module os creates a portable abstraction layer which is used by high-level modules like glob, socket, thred, time, fcntl. == Module sys == The module [[http://docs.python.org/lib/module-sys.html|sys]] provides access to system-specific parameters by the interpreter. === Example argv === {{{#!python #system1.py import sys print sys.argv }}} {{{ run system1.py parameter1 parameter2 ['system1.py', 'parameter1', 'parameter2'] }}} The script prints the command line arguments that are passed to the script. argv[0] is the script name A more sophisticated way of evaluating command line arguments is provided by the module [[http://docs.python.org/lib/module-optparse.html|optparse]] == Module os == The module [[http://docs.python.org/lib/module-os.html|os]] is a portable operating system interface. Some examples: * {{{os.system()}}} Executes the command (a string) in a subshell * {{{os.mkdir()}}} Creates a directory * {{{os.remove()}}} Deletes a file * {{{os.path.isdir()}}} Test if directory * {{{os.path.isfile()}}} Test if file * {{{os.path.exists()}}} Test if file or directory exists * {{{os.path.getsize()}}} Size of a file * {{{os.path.basename()}}} Base name of pathname == Module glob == The module [[http://docs.python.org/lib/module-glob.html|glob]] finds all the pathnames matching a specified pattern according to the rules used by the Unix shell. The following example looks for all pdf files in the current working directory and converts them into postscript files. {{{#!python #!/usr/bin/env python import os,glob filelist=glob.glob('*.pdf') for f in filelist: psfilename=f.split('.')[0]+'.ps' cmd='pdftops '+f+' '+psfilename print cmd os.system(cmd) }}} = Unix Specific Services = Features that are unique to the Unix operating system are for example shell pipelines (data streams) that ''pipe'' the output of one program to another. The pipeline symbol is {{{|}}}. For example, the command {{{ls -s | sort -rg}}} ''pipes'' the output of {{{ls -s}}} to the {{{sort}}} program. The result is a list of filenames sorted by its size A python pipeline to a Unix programm can be established using the module [[http://docs.python.org/lib/module-pipes.html|pipes]]