在python中, os模块提供了对操作系统进行操作的接口。查看os模块使用的方法为dir(),查看该模块的帮助方法为help(),
见实现的代码:
#!/usr/bin/env python #-*- coding:utf-8 -*- #os提供了对操作系统进行调用的接口 import os print dir(os) print type(help(os))
见执行如上代码后的输出内容:
C:\Python27\python.exe D:/git/Python/FullStack/Day10/osTest.py ['F_OK', 'O_APPEND', 'O_BINARY', 'O_CREAT', 'O_EXCL', 'O_NOINHERIT', 'O_RANDOM', 'O_RDONLY', 'O_RDWR', 'O_SEQUENTIAL', 'O_SHORT_LIVED', 'O_TEMPORARY', 'O_TEXT', 'O_TRUNC', 'O_WRONLY', 'P_DETACH', 'P_NOWAIT', 'P_NOWAITO', 'P_OVERLAY', 'P_WAIT', 'R_OK', 'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'TMP_MAX', 'UserDict', 'W_OK', 'X_OK', '_Environ', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_copy_reg', '_execvpe', '_exists', '_exit', '_get_exports_list', '_make_stat_result', '_make_statvfs_result', '_pickle_stat_result', '_pickle_statvfs_result', 'abort', 'access', 'altsep', 'chdir', 'chmod', 'close', 'closerange', 'curdir', 'defpath', 'devnull', 'dup', 'dup2', 'environ', 'errno', 'error', 'execl', 'execle', 'execlp', 'execlpe', 'execv', 'execve', 'execvp', 'execvpe', 'extsep', 'fdopen', 'fstat', 'fsync', 'getcwd', 'getcwdu', 'getenv', 'getpid', 'isatty', 'kill', 'linesep', 'listdir', 'lseek', 'lstat', 'makedirs', 'mkdir', 'name', 'open', 'pardir', 'path', 'pathsep', 'pipe', 'popen', 'popen2', 'popen3', 'popen4', 'putenv', 'read', 'remove', 'removedirs', 'rename', 'renames', 'rmdir', 'sep', 'spawnl', 'spawnle', 'spawnv', 'spawnve', 'startfile', 'stat', 'stat_float_times', 'stat_result', 'statvfs_result', 'strerror', 'sys', 'system', 'tempnam', 'times', 'tmpfile', 'tmpnam', 'umask', 'unlink', 'unsetenv', 'urandom', 'utime', 'waitpid', 'walk', 'write'] Help on module os: NAME os - OS routines for NT or Posix depending on what system we're on. FILE c:\python27\lib\os.py DESCRIPTION This exports: - all functions from posix, nt, os2, or ce, e.g. unlink, stat, etc. - os.path is one of the modules posixpath, or ntpath - os.name is 'posix', 'nt', 'os2', 'ce' or 'riscos' - os.curdir is a string representing the current directory ('.' or ':') - os.pardir is a string representing the parent directory ('..' or '::') - os.sep is the (or a most common) pathname separator ('/' or ':' or '\\') - os.extsep is the extension separator ('.' or '/') - os.altsep is the alternate pathname separator (None or '/') - os.pathsep is the component separator used in $PATH etc - os.linesep is the line separator in text files ('\r' or '\n' or '\r\n') - os.defpath is the default search path for executables - os.devnull is the file path of the null device ('/dev/null', etc.) Programs that import and use 'os' stand a better chance of being portable between different platforms. Of course, they must then only use functions that are defined by all platforms (e.g., unlink and opendir), and leave all pathname manipulation to os.path (e.g., split and join). CLASSES __builtin__.object nt.stat_result nt.statvfs_result exceptions.EnvironmentError(exceptions.StandardError) exceptions.OSError error = class OSError(EnvironmentError) | OS system call failed. | | Method resolution order: | OSError | EnvironmentError | StandardError | Exception | BaseException | __builtin__.object | | Methods defined here: | | __init__(...) | x.__init__(...) initializes x; see help(type(x)) for signature | | ---------------------------------------------------------------------- | Data and other attributes defined here: | | __new__ =in method __new__ of type object> | T.__new__(S, ...) -> a new object with type S, a subtype of T | | ---------------------------------------------------------------------- | Methods inherited from EnvironmentError: | | __reduce__(...) | | __str__(...) | x.__str__() <==> str(x) | | ---------------------------------------------------------------------- | Data descriptors inherited from EnvironmentError: | | errno | exception errno | | filename | exception filename | | strerror | exception strerror | | ---------------------------------------------------------------------- | Methods inherited from BaseException: | | __delattr__(...) | x.__delattr__('name') <==> del x.name | | __getattribute__(...) | x.__getattribute__('name') <==> x.name | | __getitem__(...) | x.__getitem__(y) <==> x[y] | | __getslice__(...) | x.__getslice__(i, j) <==> x[i:j] | | Use of negative indices is not supported. | | __repr__(...) | x.__repr__() <==> repr(x) | | __setattr__(...) | x.__setattr__('name', value) <==> x.name = value | | __setstate__(...) | | __unicode__(...) | | ---------------------------------------------------------------------- | Data descriptors inherited from BaseException: | | __dict__ | | args | | message class stat_result(__builtin__.object) | stat_result: Result from stat or lstat. | | This object may be accessed either as a tuple of | (mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime) | or via the attributes st_mode, st_ino, st_dev, st_nlink, st_uid, and so on. | | Posix/windows: If your platform supports st_blksize, st_blocks, st_rdev, | or st_flags, they are available as attributes only. | | See os.stat for more information. | | Methods defined here: | | __add__(...) | x.__add__(y) <==> x+y | | __contains__(...) | x.__contains__(y) <==> y in x | | __eq__(...) | x.__eq__(y) <==> x==y | | __ge__(...) | x.__ge__(y) <==> x>=y | | __getitem__(...) | x.__getitem__(y) <==> x[y] | | __getslice__(...) | x.__getslice__(i, j) <==> x[i:j] | | Use of negative indices is not supported. | | __gt__(...) | x.__gt__(y) <==> x>y | | __hash__(...) | x.__hash__() <==> hash(x) | | __le__(...) | x.__le__(y) <==> x<=y | | __len__(...) | x.__len__() <==> len(x) | | __lt__(...) | x.__lt__(y) <==> x<y | | __mul__(...) | x.__mul__(n) <==> x*n | | __ne__(...) | x.__ne__(y) <==> x!=y | | __reduce__(...) | | __repr__(...) | x.__repr__() <==> repr(x) | | __rmul__(...) | x.__rmul__(n) <==> n*x | | ---------------------------------------------------------------------- | Data descriptors defined here: | | st_atime | time of last access | | st_ctime | time of last change | | st_dev | device | | st_gid | group ID of owner | | st_ino | inode | | st_mode | protection bits | | st_mtime | time of last modification | | st_nlink | number of hard links | | st_size | total size, in bytes | | st_uid | user ID of owner | | ---------------------------------------------------------------------- | Data and other attributes defined here: | | __new__ = in method __new__ of type object> | T.__new__(S, ...) -> a new object with type S, a subtype of T | | n_fields = 13 | | n_sequence_fields = 10 | | n_unnamed_fields = 3 class statvfs_result(__builtin__.object) | statvfs_result: Result from statvfs or fstatvfs. | | This object may be accessed either as a tuple of | (bsize, frsize, blocks, bfree, bavail, files, ffree, favail, flag, namemax), | or via the attributes f_bsize, f_frsize, f_blocks, f_bfree, and so on. | | See os.statvfs for more information. | | Methods defined here: | | __add__(...) | x.__add__(y) <==> x+y | | __contains__(...) | x.__contains__(y) <==> y in x | | __eq__(...) | x.__eq__(y) <==> x==y | | __ge__(...) | x.__ge__(y) <==> x>=y | | __getitem__(...) | x.__getitem__(y) <==> x[y] | | __getslice__(...) | x.__getslice__(i, j) <==> x[i:j] | | Use of negative indices is not supported. | | __gt__(...) | x.__gt__(y) <==> x>y | | __hash__(...) | x.__hash__() <==> hash(x) | | __le__(...) | x.__le__(y) <==> x<=y | | __len__(...) | x.__len__() <==> len(x) | | __lt__(...) | x.__lt__(y) <==> x<y | | __mul__(...) | x.__mul__(n) <==> x*n | | __ne__(...) | x.__ne__(y) <==> x!=y | | __reduce__(...) | | __repr__(...) | x.__repr__() <==> repr(x) | | __rmul__(...) | x.__rmul__(n) <==> n*x | | ---------------------------------------------------------------------- | Data descriptors defined here: | | f_bavail | | f_bfree | | f_blocks | | f_bsize | | f_favail | | f_ffree | | f_files | | f_flag | | f_frsize | | f_namemax | | ---------------------------------------------------------------------- | Data and other attributes defined here: | | __new__ = in method __new__ of type object> | T.__new__(S, ...) -> a new object with type S, a subtype of T | | n_fields = 10 | | n_sequence_fields = 10 | | n_unnamed_fields = 0 FUNCTIONS abort(...) abort() -> does not return! Abort the interpreter immediately. This 'dumps core' or otherwise fails in the hardest way possible on the hosting operating system. access(...) access(path, mode) -> True if granted, False otherwise Use the real uid/gid to test for access to a path. Note that most operations will use the effective uid/gid, therefore this routine can be used in a suid/sgid environment to test if the invoking user has the specified access to the path. The mode argument can be F_OK to test existence, or the inclusive-OR of R_OK, W_OK, and X_OK. chdir(...) chdir(path) Change the current working directory to the specified path. chmod(...) chmod(path, mode) Change the access permissions of a file. close(...) close(fd) Close a file descriptor (for low level IO). closerange(...) closerange(fd_low, fd_high) Closes all file descriptors in [fd_low, fd_high), ignoring errors. dup(...) dup(fd) -> fd2 Return a duplicate of a file descriptor. dup2(...) dup2(old_fd, new_fd) Duplicate file descriptor. execl(file, *args) execl(file, *args) Execute the executable file with argument list args, replacing the current process. execle(file, *args) execle(file, *args, env) Execute the executable file with argument list args and environment env, replacing the current process. execlp(file, *args) execlp(file, *args) Execute the executable file (which is searched for along $PATH) with argument list args, replacing the current process. execlpe(file, *args) execlpe(file, *args, env) Execute the executable file (which is searched for along $PATH) with argument list args and environment env, replacing the current process. execv(...) execv(path, args) Execute an executable path with arguments, replacing current process. path: path of executable file args: tuple or list of strings execve(...) execve(path, args, env) Execute a path with arguments and environment, replacing current process. path: path of executable file args: tuple or list of arguments env: dictionary of strings mapping to strings execvp(file, args) execvp(file, args) Execute the executable file (which is searched for along $PATH) with argument list args, replacing the current process. args may be a list or tuple of strings. execvpe(file, args, env) execvpe(file, args, env) Execute the executable file (which is searched for along $PATH) with argument list args and environment env , replacing the current process. args may be a list or tuple of strings. fdopen(...) fdopen(fd [, mode='r' [, bufsize]]) -> file_object Return an open file object connected to a file descriptor. fstat(...) fstat(fd) -> stat result Like stat(), but for an open file descriptor. fsync(...) fsync(fildes) force write of file with filedescriptor to disk. getcwd(...) getcwd() -> path Return a string representing the current working directory. getcwdu(...) getcwdu() -> path Return a unicode string representing the current working directory. getenv(key, default=None) Get an environment variable, return None if it doesn't exist. The optional second argument can specify an alternate default. getpid(...) getpid() -> pid Return the current process id isatty(...) isatty(fd) -> bool Return True if the file descriptor 'fd' is an open file descriptor connected to the slave end of a terminal. kill(...) kill(pid, sig) Kill a process with a signal. listdir(...) listdir(path) -> list_of_strings Return a list containing the names of the entries in the directory. path: path of directory to list The list is in arbitrary order. It does not include the special entries '.' and '..' even if they are present in the directory. lseek(...) lseek(fd, pos, how) -> newpos Set the current position of a file descriptor. Return the new cursor position in bytes, starting from the beginning. lstat(...) lstat(path) -> stat result Like stat(path), but do not follow symbolic links. makedirs(name, mode=511) makedirs(path [, mode=0777]) Super-mkdir; create a leaf directory and all intermediate ones. Works like mkdir, except that any intermediate path segment (not just the rightmost) will be created if it does not exist. This is recursive. mkdir(...) mkdir(path [, mode=0777]) Create a directory. open(...) open(filename, flag [, mode=0777]) -> fd Open a file (for low level IO). pipe(...) pipe() -> (read_end, write_end) Create a pipe. popen(...) popen(command [, mode='r' [, bufsize]]) -> pipe Open a pipe to/from a command returning a file object. popen2(...) popen3(...) popen4(...) putenv(...) putenv(key, value) Change or add an environment variable. read(...) read(fd, buffersize) -> string Read a file descriptor. remove(...) remove(path) Remove a file (same as unlink(path)). removedirs(name) removedirs(path) Super-rmdir; remove a leaf directory and all empty intermediate ones. Works like rmdir except that, if the leaf directory is successfully removed, directories corresponding to rightmost path segments will be pruned away until either the whole path is consumed or an error occurs. Errors during this latter phase are ignored -- they generally mean that a directory was not empty. rename(...) rename(old, new) Rename a file or directory. renames(old, new) renames(old, new) Super-rename; create directories as necessary and delete any left empty. Works like rename, except creation of any intermediate directories needed to make the new pathname good is attempted first. After the rename, directories corresponding to rightmost path segments of the old name will be pruned until either the whole path is consumed or a nonempty directory is found. Note: this function can fail with the new directory structure made if you lack permissions needed to unlink the leaf directory or file. rmdir(...) rmdir(path) Remove a directory. spawnl(mode, file, *args) spawnl(mode, file, *args) -> integer Execute file with arguments from args in a subprocess. If mode == P_NOWAIT return the pid of the process. If mode == P_WAIT return the process's exit code if it exits normally; otherwise return -SIG, where SIG is the signal that killed it. spawnle(mode, file, *args) spawnle(mode, file, *args, env) -> integer Execute file with arguments from args in a subprocess with the supplied environment. If mode == P_NOWAIT return the pid of the process. If mode == P_WAIT return the process's exit code if it exits normally; otherwise return -SIG, where SIG is the signal that killed it. spawnv(...) spawnv(mode, path, args) Execute the program 'path' in a new process. mode: mode of process creation path: path of executable file args: tuple or list of strings spawnve(...) spawnve(mode, path, args, env) Execute the program 'path' in a new process. mode: mode of process creation path: path of executable file args: tuple or list of arguments env: dictionary of strings mapping to strings startfile(...) startfile(filepath [, operation]) - Start a file with its associated application. When "operation" is not specified or "open", this acts like double-clicking the file in Explorer, or giving the file name as an argument to the DOS "start" command: the file is opened with whatever application (if any) its extension is associated. When another "operation" is given, it specifies what should be done with the file. A typical operation is "print". startfile returns as soon as the associated application is launched. There is no option to wait for the application to close, and no way to retrieve the application's exit status. The filepath is relative to the current directory. If you want to use an absolute path, make sure the first character is not a slash ("/"); the underlying Win32 ShellExecute function doesn't work if it is. stat(...) stat(path) -> stat result Perform a stat system call on the given path. stat_float_times(...) stat_float_times([newval]) -> oldval Determine whether os.[lf]stat represents time stamps as float objects. If newval is True, future calls to stat() return floats, if it is False, future calls return ints. If newval is omitted, return the current setting. strerror(...) strerror(code) -> string Translate an error code to a message string. system(...) system(command) -> exit_status Execute the command (a string) in a subshell. tempnam(...) tempnam([dir[, prefix]]) -> string Return a unique name for a temporary file. The directory and a prefix may be specified as strings; they may be omitted or None if not needed. times(...) times() -> (utime, stime, cutime, cstime, elapsed_time) Return a tuple of floating point numbers indicating process times. tmpfile(...) tmpfile() -> file object Create a temporary file with no directory entries. tmpnam(...) tmpnam() -> string Return a unique name for a temporary file. umask(...) umask(new_mask) -> old_mask Set the current numeric umask and return the previous umask. unlink(...) unlink(path) Remove a file (same as remove(path)). urandom(...) urandom(n) -> str Return n random bytes suitable for cryptographic use. utime(...) utime(path, (atime, mtime)) utime(path, None) Set the access and modified time of the file to the given values. If the second form is used, set the access and modified times to the current time. waitpid(...) waitpid(pid, options) -> (pid, status << 8) Wait for completion of a given process. options is ignored on Windows. walk(top, topdown=True, οnerrοr=None, followlinks=False) Directory tree generator. For each directory in the directory tree rooted at top (including top itself, but excluding '.' and '..'), yields a 3-tuple dirpath, dirnames, filenames dirpath is a string, the path to the directory. dirnames is a list of the names of the subdirectories in dirpath (excluding '.' and '..'). filenames is a list of the names of the non-directory files in dirpath. Note that the names in the lists are just names, with no path components. To get a full path (which begins with top) to a file or directory in dirpath, do os.path.join(dirpath, name). If optional arg 'topdown' is true or not specified, the triple for a directory is generated before the triples for any of its subdirectories (directories are generated top down). If topdown is false, the triple for a directory is generated after the triples for all of its subdirectories (directories are generated bottom up). When topdown is true, the caller can modify the dirnames list in-place (e.g., via del or slice assignment), and walk will only recurse into the subdirectories whose names remain in dirnames; this can be used to prune the search, or to impose a specific order of visiting. Modifying dirnames when topdown is false is ineffective, since the directories in dirnames have already been generated by the time dirnames itself is generated. No matter the value of topdown, the list of subdirectories is retrieved before the tuples for the directory and its subdirectories are generated. By default errors from the os.listdir() call are ignored. If optional arg 'onerror' is specified, it should be a function; it will be called with one argument, an os.error instance. It can report the error to continue with the walk, or raise the exception to abort the walk. Note that the filename is available as the filename attribute of the exception object. By default, os.walk does not follow symbolic links to subdirectories on systems that support them. In order to get this functionality, set the optional argument 'followlinks' to true. Caution: if you pass a relative pathname for top, don't change the current working directory between resumptions of walk. walk never changes the current directory, and assumes that the client doesn't either. Example: import os from os.path import join, getsize for root, dirs, files in os.walk('python/Lib/email'): print root, "consumes", print sum([getsize(join(root, name)) for name in files]), print "bytes in", len(files), "non-directory files" if 'CVS' in dirs: dirs.remove('CVS') # don't visit CVS directories write(...) write(fd, string) -> byteswritten Write a string to a file descriptor. DATA F_OK = 0 O_APPEND = 8 O_BINARY = 32768 O_CREAT = 256 O_EXCL = 1024 O_NOINHERIT = 128 O_RANDOM = 16 O_RDONLY = 0 O_RDWR = 2 O_SEQUENTIAL = 32 O_SHORT_LIVED = 4096 O_TEMPORARY = 64 O_TEXT = 16384 O_TRUNC = 512 O_WRONLY = 1 P_DETACH = 4 P_NOWAIT = 1 P_NOWAITO = 3 P_OVERLAY = 2 P_WAIT = 0 R_OK = 4 SEEK_CUR = 1 SEEK_END = 2 SEEK_SET = 0 TMP_MAX = 32767 W_OK = 2 X_OK = 1 __all__ = ['altsep', 'curdir', 'pardir', 'sep', 'extsep', 'pathsep', '... altsep = '/' curdir = '.' defpath = r'.;C:\bin' devnull = 'nul' environ = {'TMP': 'C:\\Users\\ADMINI~1.LWP\\AppData\\Local...'USERPROF... extsep = '.' linesep = '\r\n' name = 'nt' pardir = '..' pathsep = ';' sep = r'\' 'NoneType'> Process finished with exit code 0
下面我们就来看看os模块的应用,见案例的代码:
#!/usr/bin/env python #-*- coding:utf-8 -*- #os提供了对操作系统进行调用的接口 import os print u'查看模块的所有方法:', os.__all__ print u'获取当前工作目录:',os.getcwd() # print u'改变当前工作目录:',os.chdir('') print u'返回当前目录:',os.curdir print u'获取当前目录的父目录字符串名:',os.pardir print u'获取目录下的所有文件夹和文件:' for item in os.listdir('c:/'): print item print u'获取文件/目录信息:',os.stat('c:/') print u'当前操作系统:',os.name print u'执行shell命令:',os.system('dir') print u'获取系统环境变量:',os.environ print u'返回绝对路劲:',os.path.abspath('c:/') print u'对文件夹进行分割:',os.path.split('c:/') print u'获取path的目录:',os.path.dirname('c:/') print u'返回path目录的最后文件名:',os.path.basename('c:/') print u'判断目录是否存在:',os.path.exists('c:/') print u'判断是否是绝对路劲:',os.path.isabs('c:/') print u'判断是否是文件:',os.path.isfile('c:/') print u'判断是否是目录:',os.path.isdir('c:/') # print u'多个路劲进行组合:',os.path.join() print u'最后存取时间:',os.path.getatime('c:/') print u'最后修改时间:',os.path.getmtime('c:/') #获取到目录: D:\git\Python\FullStack\Day5 print u'获取当前路劲:', os.path.abspath(os.path.dirname(__file__)) #到当前的项目目录下 print u'获取当前路劲下的上一级目录:', os.path.dirname(os.path.dirname(os.path.abspath(__file__))) print u'对文件进行拼接:',os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))),'Data-Driver')
下面我们来实现,通过os模块与sys的模块来实现,把路劲加入到path中,然后来调用该模块中的代码,见实现的代码:
#!/usr/bin/env python #-*- coding:utf-8 -*- import os import sys base_dir=os.path.dirname(os.path.dirname(__file__)) day_dir=os.path.join(base_dir+'/Day11/socketTest') print day_dir #添加到路劲中 sys.path.append(day_dir) #导入模块,调用模块中的类或者函数 import socketServer socketServer.login()