我是爱哭鬼  

一、sys模块

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#! 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()删除一个文件

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

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

1
2
import os
print os.name

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

1
2
import os
print os.getcwd()

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

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

  结果:D:\Program Files\Java\jdk1.7.0_10

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

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

  结果:True

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

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

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

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

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

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

9 、os.linesep获取行终止符

1
2
3
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   我是爱哭鬼  阅读(1614)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
 
点击右上角即可分享
微信分享提示