doraemon的python 模块

第六章 模块

6.1 模块

  • 内置模块,python内部提供过的功能

import sys
  • 第三方模块,下载/安装/使用

#吧pip.exe 所在的目录添加到环境变量中
pip install 安装的模块名字  #例如:pip install xlrd
  • 自定义模块(自己写的函数)

    • xxx.py

    def f1():
       print(123)
       
    def f2():
       print(125)
    • x1.py

    #调用自定义函数里面的内容
    import xxx
    xxx.f1()
    xxx.f2()

     

6.2 sys

python解释器相关的数据

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

  • sys.getrecursionlimit,python默认支持的递归数量

  • sys.stdout.write-->print

#打印进度条
import time
for i in range(1,101):
   msg = "%s%%" %i
   print(msg,end="")
   time.sleep(0.05)
  • sys.argv

#让用户执行脚本传入要删除的文件路径,在内部帮助用户将目录删除
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]

impor shutil
shutil.rmtree(path)
  • sys.path,默认pythn去导入模块时,会按照sys.path中的路劲挨个寻找

import sys
sys.path.append('D:\\')
import xxx  #引用默认路径之外的模块
  • json

json是一个特殊的字符串【长的像列表/字典/字符串/数字/真假】

为什么要这么做:

  1. 方便除python以外的解释器来运行python编写的代码

  2. 方便将其他解释器编写的代码,转化成python能识别的东西

import json
#序列化,将python的值转化成json格式的字符串
v = [11,22,4,{"k1":"v2"},True,"saf"]
v1 = json.dumps(v)
print(v1)

#反序列化,将json格式的字符串转化成python的数据类型
v2 = '['alex',123]'
print(type(v2))
v3 = json.loads(v2)
print(v3,type(v3))

 

6.3 os

  • os.stat('文件名').st_size 读取文件的大小

import os 
file_size = os.stat('刘丹妮.mp4').st_size

read_size = 0
with open('刘丹妮.mp4',mode = 'rb') as f1,open('a.mp4',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="")
  • os.path.exists(path) , 如果path存在,返回True;如果path不存在,返回False

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

path = '20190409_192149.mp4' 
import os
v1 = os.path.abspath(path)
print(v1)

 

  • os.path.dirname ,获取路径的上级目录

  • import os
    v = r"D:\code\s21day14\20190409_192149.mp4"

    print(os.path.dirname(v))
  • os.path.join ,路径的拼接

import os
path = "D:\code\s21day14" # 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)
  • os.listdir , 查看一个目录下所有的文件【第一层】

  • import os

    result = os.listdir(r'D:\code\s21day14')
    for path in result:
       print(path)
  • os.walk , 查看一个目录下所有的文件【所有层】

import os

result = os.walk(r'D:\code\s21day14')
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/sf/sf/er/xxx.txt'

file_folder = os.patn.dirname(file_path)
if not os.path.exists(file_path)
os.makedirs(file_folder)
   
with open(file_path,mode='w',encoding='utf-8') as f:
   f.write('asdf')
  • os.rename,重命名

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

 

6.4特殊补充

v1 = r"D:\code\s21day14\n1.mp4"  (推荐)
print(v1)


v2 = "D:\\code\\s21day14\\n1.mp4"
print(v2)

#python在执行过程中,对\很敏感,如果按照案例中的来写,很容易就系统报错,r的作用是让左右\都被认为仅仅只是\,区别去\n这种
  • shutil

import shutil
shutil.rmtree(path)

 

猜你喜欢

转载自www.cnblogs.com/doraemon548542/p/11225352.html