码迷,mamicode.com
首页 > 其他好文 > 详细

第二十天 模块 sys os os下path settings random shuit

时间:2018-10-16 20:22:16      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:显示   pattern   获取   user   package   浮点   project   join   exit   

一.sys模块

1.sys.argv 命令行参数List,第一个元素是程序本身路径

2.sys.exit(n) 退出程序,正常退出时exit(0)

3.sys.version 获取Pythonn解释程序的版本信息

4.sys.maxint 最大的int值

5.sys.path 返回模块的搜索路径,初始化使用PYTHONPATH环境变量的值

6.sys.platform 返回操作系统平台名称

 

拓展

脚本执行时 很多时候需要使用进度条

如何实现

 

print("[###])

print(‘[####]")

print("[#####]")

 

分析:

  中括号位置实固定的变化的时里面的符号

    格式化替换加占位 print("[%-50s]"%"#")

  人家的是不换行的一直在一行刷新进度

    实际上是新的内容覆盖了旧的内容感觉像是动画

  中括号的宽度应该是不固定的 根据cmd进行调整 所以当做参数传进来

    于是print("[%-%ds]")

    发现不行说你传参传多了

  定义为方法

  不换行打印 并将光标移动至行其实

 

 二.os模块

  os.getcwd()获取当前工作目录,即当前python脚本工作的目录路径

  os.chdir("dirname")

     os.curdir 返回当前目录:(‘,‘)

  os.pardir 获取当前目录的父目录字符串名:(‘..‘)

  os.makedirs(‘dirname1/dirname2‘) 可生成多层递归目录

  os.removedirs(‘dirname1‘) 若目录为空,则删除,并递归到上一级目录,如若也为空

  则删除,依此类推.

  os,mkdir(‘dirname‘) 生成单级目录;相当于shell中mkdir dirname

  os.rmdir(‘diname‘) 删除单级空目录,若目录不为空则无法删除,报错;相

  当于shell中rmdir dirname

  os,listdir(‘dirname‘) 列出指定目录下的所有文件和子目录,包括隐藏文件,

  并以列表的方式打印

  os.remove()删除一个文件

  os.rename(‘oldname‘,‘newname‘)重命名文件/目录

  os.stat(‘path/filename‘) 获取文件/目录信息

  os.sep 输出操作系统特定的路径分隔符,win下为"\\",Linux下为
  os.linesep 输出当前平台使用的行终止符,win下为"\t\n",Linus下为‘\n‘
  os.pathsep 输出用于分割文件路径的字符串 win 下为;,Linux为:
  os.name输出字符串指示当前使用平台 win->‘nt‘;Linux->‘posix‘
  os.system(‘bash command‘)运行shell命令,直接显示
  os.environ 获取环境变量
 

三 path模块
  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所指向的?文件或者?目录的最后修改时间
  os.path.getsize(path) 返回path的?大?小

  # normcase ?用于将路路规范化 会将?大写转为?小写 斜杠改为当前系统分隔符
  print(os.path.normcase("\\a\\b\\ABCS"))
  # normpath?用于将路路径规范化 不不仅将?非法的分隔符替换为合法分隔符 还将
  ?大写转为?小写 并且会执?行行..的回到上?一层
  print(os.path.normpath("/a/b/../ABCS"))

5.setting

import os
# 直接写死不能跨平台 尽量使用下面两种
DB_PATH = r"D:\上海python全栈4期\day19\db\高根db.txt"
LOG_PATH = r"D:\上海python全栈4期\day19\log\log.txt"

# 第二种拼接方式  跨平台
# 先获取当前路径
# BASE_DIR2 = os.path.dirname(os.path.dirname(__file__))
# LOG_PATH2 = os.path.join(BASE_DIR2,"log","log.txt")
# print(LOG_PATH2)

# 第三种拼接方式 跨平台
print(os.path.normpath(__file__))
print(os.path.normpath(os.path.join(__file__,"..","..","log","log.txt")))

6 随机模块random

import random
# 随机数模块

print(random.random())  #0-1 不包括1随机浮点数
print(random.randint(1,10)) # 1-10 包括1和10 的整数
print(random.randrange(1,10)) # 1-10包括1 不包括10的整数
print(random.sample(["aaa",["a","b"],3,4,5],2)) # 指定一个范围并指定需要的随机个数
ls = ["1","2","3","4"]
random.shuffle(ls) # 打乱顺序  洗牌 改的原有列表
print(ls)
print(random.choice([1,2,3])) # 随机选一个
print(random.choices([1,2,3,4,5,6,7],k=2)) # 随机选指定个数


# 随机验证码 长度自定义 包括0-9 A-Z a-z
def get_auth_code(length):
    res = ""
    for i in range(length):
        a = random.randint(0,9)
        b = chr(random.randint(65,90))
        c = chr(random.randint(97,122))
        s = random.choice([a,b,c])
        res += str(s)
    return res


print(get_auth_code(4))

7 shutil 模块
  非常简便便的?文件操作 压缩包处理理模块
  shutil.copyfileobj 拷?贝?文件 提供两个?文件对象 ?长度表示缓冲区?大?小
  shutil.copyfile(src, dst) 拷?贝?文件 提供两个?文件路路径
  shutil.copymode() 拷?贝?文件权限 提供两个?文件路路径
  shutil.copystat(src, dst) 拷?贝?文件状态信息 最后访问 最后修改 权限 提供两
  个?文件路路径
  shutil.copy(src, dst) 拷?贝?文件和权限 提供两个?文件路路径
  shutil.copy2(src, dst) 拷?贝?文件和状态信息 提供两个?文件路路径
  shutil.ignore_patterns("mp3","*.py")
  shutil.copytree(src, dst, symlinks=False, ignore=None) 拷?贝?目录
  symlinks默认False将软连接拷?贝为硬链接 否则拷?贝为软连接
  shutil.rmtree 删除?目录 可以设置忽略略?文件
  shutil.move(src, dst)
移动?目录和?文件

8.压缩与解压缩
  shutil 可以打包 但是?无法解包 并且打包也是调?用tarfile 和 zipFile完成
  解压需要按照格式调?用对应的模块
  打包
  shutil.make_archive("test","tar","/Users/jerry/PycharmProjects/package/packa
  ge1")
  import tarfile,zipfile
  zip压缩
  z = zipfile.ZipFile("test.zip","w")
  z.write("sys.py")
  z.write("start.py")
  z.close()
  zip解压
  z = zipfile.ZipFile("test.zip",‘r‘)
  z.extractall("/Users/jerry/PycharmProjects/package/aaa")
  z.close()
  tar压缩
  t = tarfile.open("test.tar","w")
  t.add("start.py")
  t.add("sys.py")
  t.close()
  tar解压
  t = tarfile.open("test.tar")
  t.extractall("aaa/")
  t.close()

 

作业:
明日默写
添加工程根目录至环境变量 要求可以跨平台

import os
# 直接写死不能跨平台 尽量使用下面两种
DB_PATH = r"D:\上海python全栈4期\day19\db\高根db.txt"
LOG_PATH = r"D:\上海python全栈4期\day19\log\log.txt"

# 第二种拼接方式  跨平台
# 先获取当前路径
# BASE_DIR2 = os.path.dirname(os.path.dirname(__file__))
# LOG_PATH2 = os.path.join(BASE_DIR2,"log","log.txt")
# print(LOG_PATH2)

# 第三种拼接方式 跨平台
print(os.path.normpath(__file__))
print(os.path.normpath(os.path.join(__file__,"..",".."

 


1.课堂上的随机验证码练习

# 随机验证码 长度自定义 包括0-9 A-Z a-z
def get_auth_code(length):
    res = ""
    for i in range(length):
        a = random.randint(0,9)
        b = chr(random.randint(65,90))
        c = chr(random.randint(97,122))
        s = random.choice([a,b,c])
        res += str(s)
    return res

 


2.把今天讲的shutil os sys练习一下

 

第二十天 模块 sys os os下path settings random shuit

标签:显示   pattern   获取   user   package   浮点   project   join   exit   

原文地址:https://www.cnblogs.com/gongcheng-/p/9799341.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!