• sys模块,os模块


    sys模块

    sys.argv	# 命令行参数List,第一个元素是程序本身路径
    
    print(sys.argv)
    >> ['C:/Anaconda3/Scripts/ipython-script.py']
    
    sys.version		# 获取Python解释程序的版本信息
    
    print(sys.version)
    >> '3.6.1 |Anaconda custom (64-bit)| (default, May 11 2017, 13:25:24) [MSC v.1900 64 bit (AMD64)]'
    
    sys.maxint		# 系统最大的Int值,只在python2中有,python3中int的大小不再受到限制
    
    print sys.maxint
    >> 2147483647
    
    sys.path	# 返回python模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
    
    print(sys.path)
    >> ['',
     'C:\Anaconda3\Scripts',
     'C:\Anaconda3\python36.zip',
     'C:\Anaconda3\DLLs',
     'C:\Anaconda3\lib',
     'C:\Anaconda3',
     'C:\Anaconda3\lib\site-packages',
     'C:\Anaconda3\lib\site-packages\Sphinx-1.5.6-py3.6.egg',
     'C:\Anaconda3\lib\site-packages\win32',
     'C:\Anaconda3\lib\site-packages\win32\lib',
     'C:\Anaconda3\lib\site-packages\Pythonwin',
     'C:\Anaconda3\lib\site-packages\setuptools-27.2.0-py3.6.egg',
     'C:\Anaconda3\lib\site-packages\IPython\extensions',
     'C:\Users\鑫。\.ipython']
     
    sys.platform	# 返回操作系统平台名称
    
    print(sys.platform)
    >> 'win32'
    
    sys.exit(n)		# 退出程序,正常退出时exit(0)
    
    # system.exit(0):正常退出,程序正常执行结束退出
    # system.exit(1):是非正常退出,就是说无论程序正在执行与否,都退出,
    
    sys.stdin		# 输入相关
    # sys.stdin.readline()	# 接受输入字符串,和input差不多
    
    print(sys.stdin.readline())
    In [1]:abc123
    Out [1]:abc123
     
    sys.stdout		# 输出相关
    
    sys.stderror	# 错误相关

    示例:进度条

     1 import sys
     2 import time
     3 
     4 
     5 def progress_bar(num, total):
     6     rate = float(num) / float(total)
     7     rate_num = int(rate * 100)
     8     r = '
    %d%%' % (rate_num, )        # 字符串是 %s;整数 %d;浮点数%f
     9     sys.stdout.write(r)        # 打印
    10     sys.stdout.flush()        # 刷新
    11 
    12 
    13 if __name__ == '__main__':
    14     for i in range(0, 100):
    15         time.sleep(0.1)
    16         progress_bar(i, 100)
    进度条

    OS模块

    os.getcwd()		# 获取当前工作目录,即当前python脚本工作的目录路径
    
    print(os.getcwd())
    >> 'C:\Users\鑫。\Documents'
    
    os.chdir("dirname")		# 改变当前脚本工作目录;相当于shell下cd
    
    os.chdir("Adobe")
    print(os.getcwd())
    >> 'C:\Users\鑫。\Documents\Adobe'
    
    os.curdir		# 返回当前目录: ('.')
    
    os.pardir		# 获取当前目录的父目录字符串名:('..')
    
    os.makedirs('dir1/dir2')    # 可生成多层递归目录***
    
    os.removedirs('dirname1')   # 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
    
    os.mkdir('dirname')         # 生成单级目录;相当于shell中mkdir dirname
    
    os.rmdir('dirname')         # 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
    
    os.listdir('dirname')       # 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
    
    print(os.listdir('Fiddler2'))
    >> ['AutoResponder.xml', 'Captures', 'Scripts']
    
    os.remove()                 # 删除一个文件
    
    os.rename("oldname","newname")  # 重命名文件/目录***
    
    os.stat('path/filename')    # 获取文件/目录信息
    print(os.stat('Fiddler2'))
    >> os.stat_result(st_mode=16895, st_ino=8162774324732497, st_dev=3155401450, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1512113836, st_mtime=1512113836, st_ctime=1512019051)
    
    os.sep                      # 获取操作系统特定的路径分隔符,win下为"\",Linux下为"/"
    
    os.linesep                  # 获取当前平台使用的行终止符,win下为"	
    ",Linux下为"
    "
    
    os.pathsep                  # 获取用于分割文件路径的字符串
    
    os.name                     # 获取字符串指示当前使用平台。win->'nt'; Linux->'posix'
    
    os.system("bash command")   # 运行shell命令,直接显示
    
    os.environ                  # 获取系统环境变量
    
    # ================================= os.path.xxx*** =================================
    
    os.path.abspath(path)       # 返回path规范化的绝对路径
    
    os.path.split(path)         # 将path分割成目录和文件名二元组返回
    
    os.path.dirname(path)       # 返回path的目录。其实就是os.path.split(path)的第一个元素
    
    os.path.basename(path)      # 返回path最后的文件名。如何path以/或结尾,那么就会返回空值。即os.path.split(path)的第二个元素
    
    os.path.exists(path)        # 如果path存在,返回True;如果path不存在,返回False
    
    os.path.isabs(path)         # 如果path是绝对路径,返回True
    
    os.path.isfile(path)        # 如果path是一个存在的文件,返回True否则返回False***
    
    os.path.isdir(path)         # 如果path是一个存在的目录,则返回True。否则返回False
    
    os.path.join(path1[, path2[, ...]])  # 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
    
    os.path.getatime(path)      # 返回path所指向的文件或者目录的最后存取时间
    
    os.path.getmtime(path)      # 返回path所指向的文件或者目录的最后修改时间
    

    小Tips

    1. sys.exit(n) 退出程序引发SystemExit异常, 可以捕获异常执行些清理工作. n默认值为0, 表示正常退出. 其他都是非正常退出. 还可以sys.exit("sorry, goodbye!"); 一般主程序中使用此退出.

    2. os._exit(n), 直接退出, 不抛异常, 不执行相关清理工作. 常用在子进程的退出.
    3. exit()/quit(), 跑出SystemExit异常. 一般在交互式shell中退出时使用.
  • 相关阅读:
    IDEA激活
    Spring JDBC
    数据库连接池
    JDBC
    10个很实用Linux命令,千万不要错过
    Linux 下如何使用 alias 命令
    Linux 下如何使用 fc 命令
    Linux 下如何修改密码有效期?
    利用 tee 命令调试shell脚本中的管道
    ps 命令显示不完整的问题
  • 原文地址:https://www.cnblogs.com/x54256/p/8290241.html
Copyright © 2020-2023  润新知