90 likes | 230 Views
The OS Module (windows and unix). Dick Steflik CS360. Python OS Module. The OS module provides a portable way of using operating system dependent functionality. For instance to get a directory list on a windows machine you can issue : os.system(‘ls –l’) will return a unix style list:
E N D
The OS Module(windows and unix) Dick Steflik CS360
Python OS Module The OS module provides a portable way of using operating system dependent functionality. For instance to get a directory list on a windows machine you can issue : os.system(‘ls –l’) will return a unix style list: drwxr-xr-x 2 Dick Administ 0 Feb 27 22:54 aaaa -rw-r--r-- 1 Dick Administ 645 Feb 28 22:41 ftp.py os.system(‘dir *.*’) will return windows style list Volume in drive C has no label. Volume Serial Number is F017-710B Directory of C:\cs260\ftp 02/27/2012 10:54 PM <DIR> . 02/27/2012 10:54 PM <DIR> .. 02/27/2012 10:54 PM <DIR> aaaa 02/28/2012 10:41 PM 645 ftp.py 1 File(s) 645 bytes 3 Dir(s) 44,729,069,568 bytes free
OS Module – Misc Interfaces os.name – The name of the operating system module imported (posix,nt, os2, ce , java , riscos) os.getpid – returns the process id. os.getenv(varname [, value]) – return the value of the environment variable varname. os.putenv(varname[,value]) – set the named environment variable to value. os.unsetenv(varname) – delete the named environment variable.
File Descriptors An abstract indicator for accessing a file. In POSIX (Portable Operating System Interface) a descriptor is a C type int. In Microsoft terminology it is known as a file handle. POSIX has three standard file descriptors that are available to every process: 0 Standard Input (stdin) 1 Standard Output (stdout) 2 Standard Error (stderr) Generally , a descriptor is an index into a kernel resident data structure that keeps trace of all open files. In POSIX this is called the file descriptor table and each process has it’s own file descriptor table. In UNIX and Linux systems a file descriptor can refer to: files, directories, bloc and/or character devices, sockets, and named or unnamed pipes (FIFOs) Windows uses the term file handles. To provide POSIX compatibility Windows C libraries provide wrappers around native APIs to provide POSIX like integer file descriptors.
OS Module Flags os.O_RDONLY: open for reading only os.O_WRONLY: open for writing only os.O_RDWR : open for reading and writing os.O_NONBLOCK: do not block on open os.O_APPEND: append on each write os.O_CREAT: create file if it does not exist os.O_TRUNC: truncate size to 0 os.O_EXCL: error if create and file exists os.O_SHLOCK: atomically obtain a shared lock os.O_EXLOCK: atomically obtain an exclusive lock os.O_DIRECT: eliminate or reduce cache effects os.O_FSYNC : synchronous writes os.O_NOFOLLOW: do not follow symlinks
OS Module File Tools Additional file processing tools, different than the Python file object. os.open(path, flags, mode) – opens a file and returns its file descriptor os,read(file_descriptor, N) os.write(file_descriptor, string) os.lseek(file_descriptor, pos) – set the current position of the file_descriptor to position pos os.close(file_descriptor) – closes the file_descriptor os.fstat(file_descriptor) – return the status of file_descriptor. os.fsync(file_descriptor) – Force write of file with file_descriptor to disk.
Example import os, sys # Open a file fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT ) # Write one string os.write(fd, "This is test") # Close opened file os.close( fd ) print "Closed the file successfully!!"
OS Module Directory Tools os.chdir(path) – change the current working directory to path os.getcwd() – get current working directory os.getcwdu() – get the current working directory as a unicode object os.listdir(path) – returns a list of the names of the entries in the directory given by path; list is in arbitrary order and doesn’t contain ‘,’ or ‘..’ . >>> print os.listdir('.') ['aaaa', 'ftp.py'] os.mkdir(path[,mode]) – create a directory named path with mode mode. default mode is 0777. Mode is ignored on Windows. os.rename(old , new ) – rename file or directory from old to new. os.rmdir(path) – remove (delete) the directory path. This only works if the directory is empty.