• (python) 标准模块sys和os的使用


    一、sys模块

    包含了系统的相关的功能。我们来学习sys.argv,它包含命令行参数。

    例子:定义了一个add函数,用来实现两个整数的相加。

    #! coding=utf-8
    #  usersys.py
    import sys
    def add(a,b):
        print a+b
    print sys.argv
    if len(sys.argv)<2:
        print "argv is lower 2"
    else:
        if sys.argv[1].startswith("-") and (len(sys.argv)==2):
            option=sys.argv[1][2:]
            if option=="help":
                print """this is my add,two parama a and b"""
            elif option=="version":
                print "v1.0"
            else:
                print "no this option"
    
        elif len(sys.argv)==3:
            try:
                a=int(sys.argv[1])
                b=int(sys.argv[2])
                add(a,b)
            except Exception ,e:
                print e
        else:
            print "parama is biger 3"

     在cmd命令行下,运行sysuser.py。有以下几种情况:

    1、输入命令:python sysuser.py 

         命令行参数只有1个,此时sys.argv=["sysuser.py"]. 打印“argv is lower 2”

    2、输入命令:python sysuser.py --help (或输入命令:python sysuser.py --version)

         命令行参数有2个,此时sys.argv=["sysuser.py","--help"]. 打印"""this is my add,two parama a and b"""

    3、输入命令:python sysuser.py 1 2

        命令行参数有3个,此时sys.argv=["sysuser.py","1","2"]. 这时候做加法运算

    4、其他输入情况,将进行相应处理。

    我们发现sys.argv是一个列表,并且把用户输入的每个参数都以字符串的形式存储为每一个元素。所以在处理数据的时候,需要进行数据类型转换

    二、os模块

        这个模块包含普遍的操作系统功能。

        1、os.remove()删除一个文件

    import os
    path="E:\study\test.txt"
    os.remove(path)
    

     2、os.name获取当前使用的平台,如果是windows,则返回:“nt”,如果是linux/unix,则返回:“posix”

    import os
    print os.name
    

       3、os.getcwd()获取当前工作的目录路径

    import os
    print os.getcwd()
    

     4、os.getenv()获取环境变量

    import os
    print os.getenv("JAVA_HOME")#获取环境变量JAVA_HOME
    

      结果:D:Program FilesJavajdk1.7.0_10

      5、os.path.isfile() 和os.path.isdir()分别用来检测所给路径是文件还是目录

    import os
    print os.path.isdir("E:\study\")
    

      结果:True

     6、os.path.exists() 检测所给路径是否存在

    import os
    print os.path.exists("E:\study\")

    7、os.path.split()用来将一个目录分割成路径和文件名

    import os
    print os.path.split("E:\study\1.txt")
    

      结果:('E:\study', '1.txt')

    8、os.sep 获取操作系统的文件目录分割符,如Windows为

    9 、os.linesep获取行终止符

    import os
    print "ahhaha"+os.linesep+"jsjssj"
    print  "ahhaha"+"jsjssj"
    

    结果:

    ahhaha
    jsjssj
    ahhahajsjssj

    例子:两种遍历某目录下的文件

    #! coding=utf-8
    import os
    import time
    
    
    def getListDir(basepath):
        listDir = os.listdir(basepath)
        for listIndex in listDir:
            listIndexPath=basepath+"//"+listIndex
            if os.path.isdir(listIndexPath):
                getListDir(listIndexPath)#递归遍历
            else:
                print (listIndexPath)
    
    
    def useOsWalk(basepath):
        for folder,subfolder,files in os.walk(basepath):#使用os.walk函数,该函数将迭代的返回起始目录,起始目录下的子文件夹和文件,其格式为一个元祖。
            for file in files:
                print (str(folder.replace("\","//"))+"//"+file)
    
    if __name__=="__main__":
        basepath = "E://test"
        print("遍历文件第1种方式")
        getListDir(basepath)
        print("遍历文件第2种方式")
        useOsWalk(basepath)

    输出结果:

    遍历文件第1种方式
    E://test//0.0011305996553642712.txt
    E://test//1.0803627858234796e-06.txt
    E://test//study//0.002160185390254047.txt
    E://test//study//0.003150878064854178.txt
    E://test//study//0.004092954414092252.txt
    E://test//study//yy//0.005170076111558261.txt
    遍历文件第2种方式
    E://test//0.0011305996553642712.txt
    E://test//1.0803627858234796e-06.txt
    E://test//study//0.002160185390254047.txt
    E://test//study//0.003150878064854178.txt
    E://test//study//0.004092954414092252.txt
    E://test//study//yy//0.005170076111558261.txt

  • 相关阅读:
    ssh端口转发
    linux git命令安装
    linux git命令
    linux cpio命令
    linux 抓包工具
    js 深拷贝 ,浅拷贝
    vue $router 打开新窗口
    excel常用操作
    Kafka Topic的增删改查操作
    linux上删除文件名乱码的文件
  • 原文地址:https://www.cnblogs.com/Lival/p/6204517.html
Copyright © 2020-2023  润新知