我是爱哭鬼  

一、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 Files\Java\jdk1.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

 

posted on 2016-12-20 22:08  我是爱哭鬼  阅读(1610)  评论(0编辑  收藏  举报