一、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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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,谁才是开发者新宠?