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

一.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练习一下

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

时间: 2024-10-26 06:24:35

第二十天 模块 sys os os下path settings random shuit的相关文章

Python常用模块-SYS、OS、Time、hashlib

MarkdownPad Document 时间模块 import time 三种时间表达形式: 1.时间戳 time.time()  相对于1970年到现在的秒数 2.格式化的时间字符串 time.strftime("%Y-%m-%d %X") -可以是:可以是/ '2017-04-26 00:32:18' 3.时间元组(结构化时间) time.localtime() time.struct_time(tm_year=2017, tm_mon=4, tm_mday=26, tm_hou

(python) 标准模块sys和os的使用

一.sys模块 包含了系统的相关的功能.我们来学习sys.argv,它包含命令行参数. 例子:定义了一个add函数,用来实现两个整数的相加. #! coding=utf-8 # usersys.py import sys def add(a,b): print a+b print sys.argv if len(sys.argv)<2: print "argv is lower 2" else: if sys.argv[1].startswith("-") a

Python模块——sys和os

一.sys 用于提供对Python解释器相关的操作: sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sys.maxint 最大的Int值 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform 返回操作系统平台名称 sys.stdin 输入相关 sys.stdout 输出相关 sys.stderror 错误

python os, os.path和sys模块

os:提供与系统交互的接口 常用方法: os.name:显示所使用的平台 os.system(command):运行shell命令 os.getcwd():查看工作目录 os.chdir(d):改变工作目录 os.listdir(d):查看指定目录下的所有内容 os.remove(f):删除指定文件 os.chmod(f,c):修改指定文件的权限,linux中以四个八进制数表示 os.makeirs(dn):递归创建目录 os.mkdir(dn):创建目录,父目录必须存在 os.rmdir(dn

python开发模块基础:os&amp;sys

一,os模块 os模块是与操作系统交互的一个接口 1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 4 ''' 5 os.walk() 显示目录下所有文件和子目录以元祖的形式返回,第一个是目录,第二个是文件夹,第三个是文件 6 open(r'tmp\inner\file',w) 创建文件 7 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 可以先记录当前文件目录 8 os.chdir("dirname") 改

os模块sys模块

提供对操作系统进行调用的接口 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os.curdir 返回当前目录: ('.') os.pardir 获取当前目录的父目录字符串名:('..') os.makedirs('dirname1/dirname2') 可生成多层递归目录 os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若

python常用模块3(os和sys模块)

import osimport sys # print(os.getcwd())#取当前工作目录# os.chmod("/usr/local",7)#给文件/目录加权限# print(os.chdir(r"e:\byz_code\day2"))#更改当前目录# print(os.curdir)#当前目录# print(os.pardir)#父目录# print(os.mkdir(r"test1))#创建文件夹# print(os.makedirs(r&qu

python---基础知识回顾(四)(模块sys,os,random,hashlib,re,json,xml,shutil,configparser,logging,datetime,time,集合,堆,双端队列,其他)

前提:dir,__all__,help,__doc__,__file__ dir:可以用来查看模块中的所有特性(函数,类,变量等) >>> import copy >>> dir(copy) ['Error', 'PyStringMap', '_EmptyClass', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package_

python 常用模块 time random os模块 sys模块 json &amp; pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则

python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib  subprocess logging re正则 转自老男孩老师Yuan:http://www.cnblogs.com/yuanchenqi/articles/5732581.html 模块&包(* * * * *) 模块(modue)的概念: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,