5.5 getpass 密码不显示(只能在终端运行)

  • 密码不显示(只能在终端运行)

    import getpass
    ​
    pwd = getpass.getpass('请输入密码:')
    if pwd == '123':
       print('输入正确')

5.6 sys 解释器相关模块

  • sys.getrefcount,获取一个值的应用计数

    import sys
    a = [11,22,33]
    b = a
    print(sys.getrefcount(a)) # 3
  • sys.getrecursionlimit,python默认支持的递归数量

    import sys
    ​
    print(sys.getrecursionlimit()) # 1000
  • sys.stdout.write ----> print (可以查看进度)

    import time
    for i in range(1,101):
    mag = "%s%%\r" %i
    print(mag,end="")
    time.sleep(0.05) #从1%长到100%
    import os
    # 1.读取文件大小(字节)
    file_size = os.stat('day001.zip').st_size# 文件大小
    # 2.一点一点的读取文件
    read_size = 0   # 阅读大小
    with open('day001.zip',mode='rb') as f1 , open ('a.zip',mode='wb') as f2:
       while read_size < file_size:
           chunk = f1.read(1024) #每次最多读取1024字节
           f2.write(chunk)
           read_size += len(chunk) #阅读大小=阅读大小+读取长度
           val = int(read_size/file_size * 100) # 求当前读取%数
           print('%s%%\r'%val,end='')
  • sys.argv 获取用户执行脚本时,传入的参数。

    """
    让用户执行脚本传入要删除的文件路径,在内部帮助用将目录删除。
    C:\Python36\python36.exe D:/code/s21day14/7.模块传参.py D:/test
    C:\Python36\python36.exe D:/code/s21day14/7.模块传参.py
    ​
    """
    import sys
    ​
    # 获取用户执行脚本时,传入的参数。
    # C:\Python36\python36.exe D:/code/s21day14/7.模块传参.py D:/test
    # sys.argv = [D:/code/s21day14/7.模块传参.py, D:/test]
    path = sys.argv[1]
    ​
    # 删除目录
    import shutil
    shutil.rmtree(path)
  • sys.path 模块搜索 默认Python去导入模块时,会按照sys.path中的路径挨个查找。

    # import sys
    # sys.path.append('D:\\')
    # import oldboy
  • sys.exit(0) 终止程序

  • sys.modules 存储当前程序用到的所有模块,反射文件中的内容

    import demo # 导入自定义py文件
    import sys
    print(demo)
    print(sys.modules)
    print(demo is sys.modules['demo'])
    print(getattr(sys.modules['demo'],'a'))

5.7 os 操作系统相关

  • os.path.exists(path) 判断文件目录是否存在 , 如果path存在,返回True;如果path不存在,返回False

    os.path.isfile(path) 判断文件是否存在

    os.path.basename(file_path) 获取文件名

  • os.stat('文件').st_size , 获取文件大小

    os.path.getsize(path) 获取文件大小

  • os.path.abspath() , 获取一个文件的绝对路径 (__file__)获取当前文件绝对路径

    os.path.isabs(path) 判断是否为绝对路径

    path = '20190409_192149.mp4' # E:\Python_WorkSpace\day014 装饰器带参数\day001.zip
    ​
    import os
    v1 = os.path.abspath(path)
    print(v1)
    # E:\Python_WorkSpace\day014 装饰器带参数\day001.zip
    ​
    # 获取当前文件的绝对路径
    a = os.path.abspath(__file__)
    print(a)
  • os.path.dirname ,获取路径的上级目录

    import os
    v = r"E:\Python_WorkSpace\day014 装饰器带参数\day001.zip"
    ​
    print(os.path.dirname(v))
    # E:\Python_WorkSpace\day014 装饰器带参数
  • os.path.join ,路径的拼接

    import os
    path = "E:\Python_WorkSpace\day014" # user/index/inx/fasd/
    v = 'n.txt'
    ​
    result = os.path.join(path,v)
    print(result)
    result = os.path.join(path,'n1','n2','n3')
    print(result)
    # E:\Python_WorkSpace\day014\n.txt
    # E:\Python_WorkSpace\day014\n1\n2\n3
  • os.listdir , 查看一个目录下所有的文件【第一层】

    import os
    ​
    result = os.listdir(r'E:\Python_WorkSpace\day014 装饰器带参数')
    for path in result:
       print(path)
  • os.walk , 查看一个目录下所有的文件【所有层】

    import os
    ​
    result = os.walk(r'E:\Python_WorkSpace\day014 装饰器带参数')
    for a,b,c in result:
       # a,正在查看的目录 b,此目录下的文件夹 c,此目录下的文件
       for item in c:
           path = os.path.join(a,item)
           print(path)
  • os.makedirs,创建目录和子目录

    import os
    file_path = r'db\xx\xo\xxxxx.txt' # 文件路径
    ​
    file_folder = os.path.dirname(file_path) # 文件夹
    if not os.path.exists(file_folder): # 判断文件夹是否存在
       os.makedirs(file_folder)    # 创建文件夹
    ​
    with open(file_path,mode='w',encoding='utf-8') as f:
       f.write('asdf')
  • os.renname,重命名

    import os
    os.rename('db','sb')

第五章 模块之 getpass、sys、os的更多相关文章

  1. 第十篇、模块一、sys\os\hashlib模块的应用

    一.模块分为三种 1)自定义模块 2)第三方模块 3)内置模块 如何导入模块? 下面两种: 1)import 模块名字  as 别名(重新给模块命名) 2)from  模块名字  import 功能( ...

  2. 8.2,常用模块介绍:sys,os,time,random

    sys: 介绍:主要包含涉及python编译器与系统交互的函数. 常用函数: import sys print(sys.argv)#本文件名,已经运行该程序时的参数 #[如在命令窗口中python3 ...

  3. day18 python模块 random time sys os模块

    day18 python   一.random模块     取随机整数 import random print(random.randint(1,2))                 #顾头顾尾 p ...

  4. devi into python 笔记(五)异常 文件操作 sys os glob模块简单实用

    异常: Java异常: try catch块处理异常,throw引发异常. Python异常: try except块处理异常,raise引发异常. 异常如果不主动处理,则会交给Python中的缺省处 ...

  5. day20 模块 collections time sys os

    1.模块 1. 模块的定义:我们把装有特定功能的代码进行归类的结果.我们目前写的所有py文件都是模块 2. 引入模块的方式: 1.import 模块名 2.from xxx import 模块名 2. ...

  6. 第五章 模块之 struct、dis、正则表达式、异常处理

    5.15 struct模块 pack 能够把所有的数字都固定的转换成4字节 5.16 dis dis.dis 查看计算机指令 5.16 正则表达式 基础 正则表达式概念: 是一种规则(元字符,量词) ...

  7. 第五章 模块之 shtil 、 json / pickle、importlib、collections

    5.8 shtil 高级的 文件.文件夹.压缩包 处理模块 shutil.rmtree 删除目录 import shutilshutil.rmtree(path) shutil.move 重命名:移动 ...

  8. 第五章 模块之 logging、copy、re

    5.12 logging 日志模块 报警等级 CRITICAL = 50 # 最高FATAL = CRITICALERROR = 40WARNING = 30WARN = WARNINGINFO = ...

  9. Python学习系列----第五章 模块

    5.1 如何引入模块 在Python中用关键字import来引入某个模块,比如要引用模块math,就可以在文件最开始的地方用import math来引入.在调用math模块中的函数时,必须这样引用: ...

随机推荐

  1. 02_02Session中Config的参数设置

    import tensorflow as tfimport numpy as np # todo 学习 Session中的参数Config=tf.ConfigProto()的使用.重点是GPU相关的参 ...

  2. python 设计模式之工厂模式 Factory Pattern (简单工厂模式,工厂方法模式,抽象工厂模式)

    十一回了趟老家,十一前工作一大堆忙成了狗,十一回来后又积累了一大堆又 忙成了狗,今天刚好抽了一点空开始写工厂方法模式 我看了<Head First 设计模式>P109--P133 这25页 ...

  3. ubuntu设置开机启动后命令行界面

    author:headsen chen date: 2019-09-19  14:23:31 在字符界面(即命令行界面)输入命令: 设置为字符界面的命令:sudo systemctl set-defa ...

  4. c++ 网络编程基础

    目录 c++ 网络编程 建立socket 绑定socket 建立连接 监听 服务器端接收 数据发送和接收 面向连接的数据发送 面向连接的数据接收 无连接的数据发送 无连接的数据接收 关闭socket ...

  5. Java 13 特性解读

    Java 13 特性解读    转 https://blog.csdn.net/bjweimengshu/article/details/100978383   2017年8月,JCP执行委员会提出将 ...

  6. Python3基础 keyword 查看所有的关键字

             Python : 3.7.3          OS : Ubuntu 18.04.2 LTS         IDE : pycharm-community-2019.1.3    ...

  7. sqllite 学习-1

    C# SQLite 数据库操作学习: https://www.cnblogs.com/leemano/p/6578050.html SQLite 之 C#版 System.Data.SQLite 使用 ...

  8. linux部署php网页

    liunx环境下运行php和传统的Java web程序不一样.我直接放在tomcat下竟然不行. 安装了php的一些环境,还是访问不了,原因是不支持https访问.没办法,还是得用tomcat,同时我 ...

  9. MFC加载大型osg模型

    MFC加载模型,发现打开 Navid 缓冲等选项后,加载大型模型的速度就快了很多. #include "stdafx.h" #include "OSGObject.h&q ...

  10. mysql存储过程中declare 和set 定义变量的区别

    declare为对变量进行声明,声明必须制定变量的数据类型,只能写在过程的前面set是对变量赋值,可以放在过程的任何地方对没有declare声明过的变量赋值,该变量必须以加上@号,否则会报错 DECL ...