(python) 标准模块sys和os的使用
2016-12-20 22:08
543 查看
一、sys模块
包含了系统的相关的功能。我们来学习sys.argv,它包含命令行参数。
例子:定义了一个add函数,用来实现两个整数的相加。
在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()删除一个文件
2、os.name获取当前使用的平台,如果是windows,则返回:“nt”,如果是linux/unix,则返回:“posix”
3、os.getcwd()获取当前工作的目录路径
4、os.getenv()获取环境变量
结果:D:\Program Files\Java\jdk1.7.0_10
5、os.path.isfile() 和os.path.isdir()分别用来检测所给路径是文件还是目录
结果:True
6、os.path.exists() 检测所给路径是否存在
7、os.path.split()用来将一个目录分割成路径和文件名
结果:('E:\\study', '1.txt')
8、os.sep 获取操作系统的文件目录分割符,如Windows为\
9 、os.linesep获取行终止符
结果:
ahhaha
jsjssj
ahhahajsjssj
例子:两种遍历某目录下的文件
输出结果:
遍历文件第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
包含了系统的相关的功能。我们来学习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
相关文章推荐
- Python time、datetime、os、random、sys、hashlib、json、shutil、logging、paramiko、subprocess、ConfigParser、xml、shelve模块的使用
- python之 sys.exit() os._exit() exit() quit()的简单使用
- python中os.path.dirname(__file__)和sys.path[0]使用
- python中sys.exit() os._exit() exit() quit()的简单使用
- python sys,os,time模块的使用(包括时间格式的各种转换)
- Python中OS、SYS、模块使用
- python使用os模块的os.walk遍历文件夹
- python os._exit(0) and sys.exit(0)
- python os模块使用
- python: 常用的一些函数——sys、os等
- python使用os模块的os.walk遍历文件夹示例
- 在python中如何使用sys.argv
- Python中使用os.system函数运行其他程序
- python 线程中使用os.system
- python中关于__file__ 和 sys.argv[0]的使用
- python常见模块命令(os/sys/platform)
- python学习笔记之--os.walk使用
- python中os.path.dirname(__file__)的使用
- python使用os.walk和os.path.join来遍历文件夹的文件(包括子文件夹下的文件)
- python使用os.getcwd()获取当前路径不正确