(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 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) 标准模块sys和os的使用的更多相关文章
- python中模块sys与os的一些常用方法
sys模块提供了访问或操作与python解释器相关方法与对象. 我们就列举出常用到的知识,以后,随着学习,不断补充. 几个常用到的动态对象: sys.argv,这是一个列表,它包含了所有传递给脚本的命 ...
- python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则
python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess ...
- Python常用模块sys,os,time,random功能与用法,新手备学。
这篇文章主要介绍了Python常用模块sys,os,time,random功能与用法,结合实例形式分析了Python模块sys,os,time,random功能.原理.相关模块函数.使用技巧与操作注意 ...
- Python标准模块--logging
1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同 ...
- Python标准模块--logging(转载)
转载地址:http://www.cnblogs.com/zhbzz2007/p/5943685.html#undefined Python标准模块--logging 1 logging模块简介 log ...
- 模块sys,os
Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持,以后的课程中会深入讲解常用到的各种库,现在,我们先来象征性的学2个简单的. 在Pyt ...
- Thread类的其他方法,同步锁,死锁与递归锁,信号量,事件,条件,定时器,队列,Python标准模块--concurrent.futures
参考博客: https://www.cnblogs.com/xiao987334176/p/9046028.html 线程简述 什么是线程?线程是cpu调度的最小单位进程是资源分配的最小单位 进程和线 ...
- python 全栈开发,Day42(Thread类的其他方法,同步锁,死锁与递归锁,信号量,事件,条件,定时器,队列,Python标准模块--concurrent.futures)
昨日内容回顾 线程什么是线程?线程是cpu调度的最小单位进程是资源分配的最小单位 进程和线程是什么关系? 线程是在进程中的 一个执行单位 多进程 本质上开启的这个进程里就有一个线程 多线程 单纯的在当 ...
- python全栈开发,Day42(Thread类的其他方法,同步锁,死锁与递归锁,信号量,事件,条件,定时器,队列,Python标准模块--concurrent.futures)
昨日内容回顾 线程 什么是线程? 线程是cpu调度的最小单位 进程是资源分配的最小单位 进程和线程是什么关系? 线程是在进程中的一个执行单位 多进程 本质上开启的这个进程里就有一个线程 多线程 单纯的 ...
随机推荐
- mysql5.7忘记密码
注意:mysql5.7 user表密码字段由password改为authentication_string 1.service mysql stop 2.mysqld_safe --skip-gran ...
- 重走java---Step 1
开发环境 1.使用java开发,首先要完成java运行环境的安装配置,JVM可以说是java最大的优点之一,就是它实现了java一次编译多次运行,关于JVM以后再详谈.安装配置JDK,完成java开发 ...
- diamond专题(一)– 简介和快速使用
(转自 http://blog.csdn.net/zh_winer/article/details/50395024) 一.概况 diamond是淘宝内部使用的一个管理持久配置的系统,它的特点是简单 ...
- CSS深入研究:display的恐怖故事解密(2) - table-cell
上集<CSS深入研究:display的恐怖故事解密(1) - display-inline>已经把display的属性列表拉出来溜了,发现在这个属性恐怖面貌其实都是脆弱的伪装.除了部分常用 ...
- Error:(1, 1) error: illegal character: \65279解决方法
NotePad++,选择格式,选择转为UTF-8无BOM格式,即可解决,感谢http://tzwzero-163-com.iteye.com/blog/1696605
- LDO和DC-DC器件的区别
DCDC的意思是直流变(到)直流(不同直流电源值的转换),只要符合这个定义都可以叫DCDC转换器,包括LDO.但是一般的说法是把直流变(到)直流由开关方式实现的器件叫DCDC. LDO 是低 ...
- Elasticsearch相关资源
安装介绍 http://www.doc88.com/p-171165797348.html 入门教程 http://www.iteye.com/blogs/subjects/elasticsearch ...
- Android_SQLite之创建数据库
今天我们主要学习了SQLite.主要是其中的创建数据库,连接这块. 现在我们先简单讲解下什么是SQLite 一.SQLite 简介 Google为Andriod的较大的数据处理提供了SQLite, 他 ...
- 项目中可能用到的demo
1. 轮播图 https://github.com/codingZero/XRCarouselView 2. 图表 https://github.com/Zirkfied/ZFChart
- HDU 4831 Scenic Popularity
Scenic Popularity Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...