python学习_25

sys.exit()
退出当前程序

sys.argv
返回一个列表,列表元素为python命令中的参数,如下的1、2、hello,并且包含执行的模块名称a.py

#coding=utf-8
import sys
print (sys.argv)

#coding=utf-8
import os
import time
import sys

print (sys.argv)

def add(a,b):
    return a+b

if not len(sys.argv) ==3 :
    print("参数数量不对!请指定两个数字参数")
    sys.exit()
try:
    float(sys.argv[1])
    float(sys.argv[2])
except:
    print("参数类型不对!请指定两个数字参数")
    sys.exit()

print (add(float(sys.argv[1]),float(sys.argv[2])))

#coding=utf-8
import os
import sys

def readfile(filename):
    '''Print a file to the standard output.'''
    f = open(filename)
    while True:
          line = f.readline()
          if len(line) == 0:
             break
          print (line,)
    f.close()

print ("sys.argv[0]---------",sys.argv[0])
print ("sys.argv[1]---------",sys.argv[1])
print ("sys.argv[2]---------",sys.argv[2])
# 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)

sys.stdin标准输入
标准输入就是从键盘输入
代码示例:
import sys 
counter = 1 
while True: 
     line = sys.stdin.readline() 
     if not line: 
         break 
     print "%s:%s" %(counter,line) 
     counter += 1

sys.stdout标准输出
代码示例:
import sys 
for i in range(3):
    sys.stdout.write(u"关荣之路")
print "\n","_"*60,"\n"
for i in range(3):
    sys.stderr.write(u"关荣之路")

将标准输出到屏幕,改为输出到文件里面
>>> sys.stdout = open("e:\\python\\a.txt","w")
>>> print("hello")
>>> sys.stdout.flush()
>>> sys.stdout.close()

标准错误输出sys.stderr

将标准错误输出到屏幕,改为输出到文件里面
>>> sys.stderr = open("e:\\err.txt","w")
>>> 1/0
>>> sys.stderr.flush()#将缓存内容写入文件
>>> sys.stderr.close())#关闭文件

判断是否文件
如不是文件,打开会报异常
>>> try:
...     open("e:\\python")
... except Exception as e:
...     print("目录")
...
目录

Shutil 模块
shutil.copyfile(src,dst)
src和dst 都必须是文件,把源文件src复制到目标文件dst中去,如果目标文件dst存在的话,文件内容会被覆盖;不存在会复制文件src;目标地址需具备可写权限,抛出的异常信息为IOException
>>> import shutil
>>> shutil.copyfile("e:\\python\\0521.txt","e:\\0521.txt")
>>> shutil.copyfile("e:\\python\\1.jpg","e:\\1.jpg")

shutil.copy(src,dst)
把一个文件src复制到dst中去,和shutil.copyfile()的区别是:src 是文件,但是dst可以是目录和文件;
如果目标文件dst存在的话,文件内容会被覆盖;不存在会复制文件src;目标地址需具备可写权限,抛出的异常信息为IOException
>>> shutil.copy("e:\\python\\2.txt","c:\\")
>>> shutil.copy("e:\\python\\2.txt","c:\\3.txt")

shutil.move(src,dst)
移动文件或重命名文件
可以把文件src重命名为dst,也可以把文件src移动到dst中去

>>> shutil.move("e:\\python\\2.txt","e:\\python\\2-2.txt")
>>> shutil.move("e:\\python\\2-2.txt","c:\\3-3.txt")

shutil.copy2(src,dst)
在copy上的基础上文件最后访问时间与修改时间也复制过来了
>>> shutil.copy2("e:\\python\\222.txt","c:\\222.txt")

shutil.copytree(olddir,newdir,True/False) 复制文件夹及其下文件
把olddir拷贝一份newdir,如果第3个参数是True,则复制目录时将保持文件夹下的符号连接,如果第3个参数是False,则将在复制的目录下生成物理副本来替代符号连接
>>> shutil.copytree("e:\\python","c:\\python",False)
>>> shutil.copytree("e:\\python","c:\\python2")

shutil.rmtree(path)
递归删除一个目录及目录内的所有文件
>>> shutil.rmtree("c:\\python")

shutil.copymode( src, dst) 
只是会复制其权限其他的东西是不会被复制的

shutil.copystat( src, dst) 
复制权限、最后访问时间、最后修改时间

猜你喜欢

转载自blog.51cto.com/13496943/2314072
今日推荐