os, sys模块及其他内容

来源:互联网 发布:des算法与rsa算法 编辑:程序博客网 时间:2024/05/15 23:29
 

《简明python教程》总结(六)-- os, sys模块及其他内容

分类: python 131人阅读 评论(0) 收藏 举报
模块ossyspython
sys模块

sys模块包含系统对应的功能。我们已经学习了sys.argv列表,它包含命令行参数。
命令行参数
 
#!/usr/bin/python
# Filename: cat.py
import sys
def readfile(filename):
    '''Print a file to the standard output.'''
    f = file(filename)
    while True:
        line = f.readline()
        if len(line) == 0:
            break
        print line, # notice comma
    f.close()
# Script starts from here
if len(sys.argv)< 2:
    print 'No action specified.'
    sys.exit()
if sys.argv[1].startswith('--'):
    option = sys.argv[1][2:]
    # fetch sys.argv[1] but without the first two characters
    if option == 'version':
        print 'Version 1.2'
    elif option == 'help':
        print '''\
This program prints files to the standard output.
Any number of files can be specified.
Options include:
  --version : Prints the version number
  --help    : Display this help'
''
    else:
        print 'Unknown option.'
    sys.exit()
else:
    for filename in sys.argv[1:]:
        readfile(filename)
输出
$ python cat.py
No action specified.
$ python cat.py --help
This program prints files to the standard output.
Any number of files can be specified.
Options include:
  --version : Prints the version number
  --help    : Display this help
$ python cat.py --version
Version 1.2
$ python cat.py --nonsense
Unknown option.
$ python cat.py poem.txt
Programming is fun
When the work is done
if you wanna make your work also fun:
        use Python!
 
函数:sys.argv[][], sys.exit()


os模块

这个模块包含普遍的操作系统功能
如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的。即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Windows下运行。一个例子就是使用os.sep可以取代操作系统特定的路径分割符。
 
os.name字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'。
os.getcwd()函数得到当前工作目录,即当前Python脚本工作的目录路径。
 
os.getenv()和os.putenv()函数分别用来读取和设置环境变量。
//os.getenv(argv)   参数为 常用环境变量名 ‘PATH’'HOME'    可参考 "环境变量作用 "
os.listdir()返回指定目录下的所有文件和目录名。
 
os.remove()函数用来删除一个文件。
 
os.system()函数用来运行shell命令。
 
os.linesep字符串给出当前平台使用的行终止符。例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'。
 
os.path.split()函数返回一个路径的目录名和文件名。
 
>>> os.path.split('/home/swaroop/byte/code/poem.txt')
('/home/swaroop/byte/code', 'poem.txt')
os.path.isfile()和os.path.isdir()函数分别检验给出的路径是一个文件还是目录。类似地,os.path.existe()函数用来检验给出的路径是否真地存在。


更多用法
在函数中接收元组和列表
 
当要使函数接收元组或字典形式的参数的时候,有一种特殊的方法,它分别使用*和**前缀。这种方法在函数需要获取可变数量的参数的时候特别有用。
#!/usr/bin/env python
#filename:rec_tuple.py
 
def powersum(power, *args):
    total = 0
    for i in args:
        total +=  pow(i, power)
    return total
 
print powersum(2,34)
print powersum(2,10)
输出:
25
100
由于在args变量前有*前缀,所有多余的函数参数都会作为一个元组存储在args中。如果使用的
是**前缀,多余的参数则会被认为是一个字典的键/值对。
 
 
lambda形式
 
lambda语句被用来创建新的函数对象,并且在运行时返回它们。
 
#!/usr/bin/python
# Filename: lambda.py
def make_repeater(n):
    return lambda s: s*n
twice = make_repeater(2)
print twice('word')
print twice(5)
输出
$ python lambda.py
wordword
10
分析:使用了make_repeater函数在运行时创建新的函数对象,并且返回它。lambda语句用来创建函数对象。本质上,lambda需要一个参数(本例为 s),后面仅跟单个表达式作为函数体 (本例为 s*n),而表达式的值被这个新建的函数返回。
 
exec和eval语句
exec语句用来执行储存在字符串中的Python语句。
exerfile()用来执行储存在文件中的Python语句。
例如  可以在运行时生成一个包含Python代码的字符串,然后使用exec语句执行这些语句。
eval语句用来计算存储在字符串中的有效Python表达式。
#!/usr/bin/env python
#filename:exec.py
 
print 'exec:'
exec 'print "hello world"'
 
print 'execfile:'
execfile(r'lambda.py')
 
print 'eval:'
print eval ('2*3')
输出:
exec:
hello world
execfile:
wordword
10
9
81
eval:
6
 
assert语句
assert语句用来声明某个条件是真的。例如,如果你非常确信某个你使用的列表中至少有一个元素,而你想要检验这一点,并且在它非真的时候引发一个错误,那么assert语句是应用在这种情形下的理想语句。当assert语句失败的时候,会引发一个AssertionError。
>>> mylist = ['item']
>>> assert len(mylist) >= 1
>>> mylist.pop()
'item'
>>> assert len(mylist) >= 1
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
AssertionError


总结完毕,欢迎各位多多交流
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 vivo合约机掉了怎么办 华为合约机丢了怎么办 两年合约机掉了怎么办 电信合约机丢了怎么办 s8合约机坏了怎么办 合约机的卡掉了怎么办 移动合约机屏幕碎了怎么办 5s用不了电信卡怎么办 vivo手机4g信号差怎么办 电信dns辅服务器未响应怎么办 笔记本wifi下载速度慢怎么办 苹果wifi下载速度慢怎么办 小米手机wifi下载速度慢怎么办 苹果8plus上网慢怎么办 小米5c死机了怎么办 苹果x自拍反方向怎么办 硅胶手机壳出油怎么办 指环扣松了怎么办图解 塑料放久了发粘怎么办 橡胶时间久了粘怎么办 胶的手机套变黄怎么办 手机壳硅胶变黄怎么办 硅胶手机壳大了怎么办 硅胶手机壳变大了怎么办 硅胶手机壳有点大怎么办 硅胶手机壳粘手怎么办 透明手机壳变黄怎么办? 耳机胶套经常掉怎么办 硅胶手机壳粘毛怎么办 耳机海绵套坏了怎么办 沙发垫海绵坏了怎么办 汽车坐海绵坏了怎么办 苹果手机边框有缝隙怎么办 孕期牙套子掉了怎么办 平果充电线不匹配怎么办 苹果六外壳掉漆怎么办 苹果平板充电没反应怎么办 苹果平板黑屏没反应怎么办 苹果平板卡机了怎么办 苹果7plus掉漆怎么办 皮的手机壳脏了怎么办