zoukankan      html  css  js  c++  java
  • python 中的os模块

    无论在写自动化脚本还是做测试os模块都是一个重量级的模块。今天我要总结一下os模块,os模块下的方法是真的多。

    import os
    print([obj for obj in dir(os) if not obj.startswith("__")])
    
    ['F_OK', 'MutableMapping', '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', 'W_OK', 'X_OK', 
    '_DummyDirEntry', '_Environ', '_dummy_scandir', '_execvpe', '_exists', '_exit', '_get_exports_list', '_putenv', '_unsetenv', '_wrap_close',
     'abort', 'access', 'altsep', 'chdir', 'chmod', 'close', 'closerange', 'cpu_count', 'curdir', 'defpath', 'device_encoding', 'devnull', 'dup', 'dup2', 'environ', 
     'errno', 'error', 'execl', 'execle', 'execlp', 'execlpe', 'execv', 'execve', 'execvp', 'execvpe', 'extsep', 'fdopen', 'fsdecode', 'fsencode', 'fstat', 'fsync', 'ftruncate',
     'get_exec_path', 'get_handle_inheritable', 'get_inheritable', 'get_terminal_size', 'getcwd', 'getcwdb', 'getenv', 'getlogin', 'getpid', 'getppid', 'isatty', 'kill', 'linesep', 
     'link', 'listdir', 'lseek', 'lstat', 'makedirs', 'mkdir', 'name', 'open', 'pardir', 'path', 'pathsep', 'pipe', 'popen', 'putenv', 'read', 'readlink', 'remove', 'removedirs', 'rename',
     'renames', 'replace', 'rmdir', 'scandir', 'sep', 'set_handle_inheritable', 'set_inheritable', 'spawnl', 'spawnle', 'spawnv', 'spawnve', 'st', 'startfile', 'stat', 'stat_float_times', 
     'stat_result', 'statvfs_result', 'strerror', 'supports_bytes_environ', 'supports_dir_fd', 'supports_effective_ids', 'supports_fd', 'supports_follow_symlinks', 'symlink', 'sys', 
     'system', 'terminal_size', 'times', 'times_result', 'truncate', 'umask', 'uname_result', 'unlink', 'urandom', 'utime', 'waitpid', 'walk', 'write']

    os.name——name顾名思义就是'名字',这里的名字是指操作系统的名字,主要作用是判断目前正在使用的平台,并给出操作系统的名字,如Windows 返回 'nt'; Linux 返回'posix'。注意该命令不带括号。

    os.pardir ——获取当前上级目录=》返回 ..

    note:除了前两个命令不带括号之外,以下命令基本都带括号。

    os.getcwd()——全称应该是'get current work directory',获取当前文件所在的绝对路径。

    os.getenv()os.putenv()----分别用来读取和设置环境变量

    os.environ(x [,x])--用来读取环境变量

    区别:

    os.environ(x [,x]) raises an exception if the environmental variable does not exist.
    os.getenv(x) does not raise an exception ,but returns None.
    >>> import os
    >>> print(os.getenv("HOME"))
    /home/centos
    >>> print(os.getenv("PATH"))
    /home/centos/anaconda3/bin:/home/centos/anaconda3/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/soft/jdk/bin:/soft/hadoop/bin:/soft/hadoop/sbin:/soft/zk/bin:/soft/hive/bin:/soft/hbase/bin:/soft/phoenix/bin:/soft/sqoop/bin:/soft/hue-4.1.0/build/env//bin:/soft/flume/bin:/soft/kafka/bin:/home/centos/.local/bin:/home/centos/bin

    os.listdir(path)——列出path目录下所有的文件和目录名。Path参数可以省略。例 以列表的形式全部列举出来,其中没有区分目录和文件。

    os.remove(path)——删除path指定的文件,该参数不能省略。

    os.rmdir(path)——删除path指定的目录,该参数不能省略。

    os.mkdir(path)——创建path指定的目录,该参数不能省略。 注意:这样只能建立一层

    os.makedirs(path)——递归建立可以创建多层目录

    os.chdir(path)——'change dir'改变目录到指定目录=》相当于linux的cd命令

    os.path.isfile(path)——判断指定对象是否为文件。是返回True,否则False

    os.path.isdir(path)——判断指定对象是否为目录。是True,否则False。

    os.path.exists(path)——检验指定的对象是否存在。是True,否则False.

    os.path.split(path)——返回路径的目录和文件名,即将目录和文件名分开,放到一个元祖里。此处只是把前后两部分分开而已。就是找最后一个'/'。

    os.path.join(path, name)——连接目录和文件名,与os.path.split(path)相对。

    os.path.abspath()——获得绝对路径。

    os.path.basename(path)——返回文件名

    os.path.dirname(path)——返回文件路径

    os.path.getsize()——获得文件的大小,如果为目录,返回0

    os.system(cmd)——执行shell命令。返回值是脚本的退出状态码,0代表成功,1代表不成功

     

    Demo 递归查找文件

    import os
    def findFile(dir,target):
        list1=[]
        filenames=os.listdir(dir)
        for filename in filenames:
            abpath=os.path.join(dir,filename)
            if os.path.isfile(abpath):
                if filename.endswith(target):
                    list1.append(abpath)
            else:
                findFile(abpath,target)
        return list1
    
    print(findFile("D:/Program Files/feiq/Recv Files",".sql"))
  • 相关阅读:
    OK335xS-Android mkmmc-android-ubifs.sh hacking
    OK335xS-Android pack-ubi-256M.sh hacking
    OK335xS Ubuntu 12.04.1 版本 Android 开发环境搭建
    Qt Quick Hello World hacking
    Qt QML referenceexamples attached Demo hacking
    QT 5.4.1 for Android Ubuntu QtWebView Demo
    I.MX6 working note for high efficiency
    QT 5.4.1 for Android Windows环境搭建
    mkbootimg hacking
    Generate And Play A Tone In Android hacking
  • 原文地址:https://www.cnblogs.com/wqbin/p/10224843.html
Copyright © 2011-2022 走看看