打赏

Python基础(20)——常用模块sys,os,json,pickle,shelve,xml,basedir

纠正上节课的一些错误

__name__  在入口函数中 等于'__main__'   ,在被import导入的情况下等于路径下的自己文件的名字

import os 路径是在lib下面    而sys,time模块不在lib下面,因为他们是C语言实现的内置在解释器里面的,优先级最高

sys.path.append()这个修改路径是临时的修改 ,如果永久修改需要到系统里去设置 环境变量里的系统变量

chr(65,123)中间包含了很多符号 [    / 等 ,并不都是26个字母

BASE_DIR添加绝对路径,防止文件找不到

 以后所有程序都会放到各个分类的文件夹内,所以import的时候有可能找不到,需要添加绝对路径,换电脑也可以调用,所以:

import os,sys

BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)

OS模块

os.getcwd()获取当前工作目录

os.chdir()改变当前目录   chdir('..')会返回上层目录

mkdir 建单级   makedirs  建多级

removedirs   删多级,如果上一层是空的一起删掉   remove  删一个   rmdir删空目录, 不是空报错

listdir列出这一层的文件

rename改名

stat列举文件的详细信息   st_size=12 文件几个字节  st_atime 上次访问时间  st_mtime 上次修改时间 st_ctime 文件创建时间  时间就是时间戳

sep 输出系统路径分隔符 windows  /      linux \        linesep行终止符         pathsep分割文件字符串  windows   ;     linux :

name 系统名字

system 用当前系统的命令执行

path.split(path) 返回目录和文件名,二元组返回     path.dirname目录路径     path.basename文件名

path.exists判断是否存在   path.isabs是否是绝对路径    path.isfile是否是文件   

path.join(路径1,路径2……)路径拼接

path.getatime 访问时间     path.getmtime修改时间

 sys

sys.exit退出程序,脚本里的退出     等于内置函数exit

sys.version版本

sys.platform 平台  需要多平台运行的时候

sys.argv      程序还没执行的时候,输入的参数

import sys
print(sys.argv)

在命令行执行的时候(python test.py  111  222  3333)   会返回一个列表,最前面是文件名,后面是参数,中间通过空格来区分,这样取到的命令

通过判断command=sys.argv[1]       ……

进度条的制作:     sys.stdout.write("#")

import sys,time
for i in range(100):

    sys.stdout.write('#')
    time.sleep(0.2)
    sys.stdout.flush()

stdout是控制屏幕的输出,但是屏幕输出他有缓存,他会把要输出的都加载到缓存再输出,所以flush就是刷新缓存立刻显示

json  (序列化-把对象(变量)从内存中变成可存储或传输的过程叫序列化)

 eval解析数据结构有局限性,有解不了的地方,通常就是用来执行一个字符串表达式返回表达式的值,其余都用json。pickle则是python内部的使用,json是跨语言的保存文件的数据类型,都保存为json字符串类型。其中单双引号都会被json改为双引号,JSON只认双引号

json.dumps()  把一个数据变成json格式的字符串

json.loads()把字符串解析回原来的数据类型

dump(数据,file) 等于少了一步写入write文件的操作 load同理read    有于文件的读写操作  ,其他情况不用

pickle(只能用在Python)

pickle 是Python自己的一种数据类型是字节,传输的时候节省空间,所以读取和写入的时候是'wb'   'rb'  字节操作模式,支持函数和类传输,但是需求很少,因为传的是地址?

dumps    loads 和json用法一样

shelve

shelve比pickle更简单,不是常用的,有局限性

f=shelve.open(r'shelve')

文件   f[]={}   直接写入字典

生成三个文件.bak  .dat     .dir   内容都是看不懂的和pickle类似。

取出操作 f.get()[]  取值操作      优点就是存取方便

xml

xml金融行业接口比较普遍 ,<>来区别数据是一种标签语言,包装数据方式不同,是树形结构 ,和html一样,有树根treeroot

分闭合标签和自闭合标签 

tag标签名字 attrib属性 text数值   parse解析   getroot得到树根

 set

 

 

 

 

 

 

 

      

 

posted on 2019-07-09 17:37  大有哥  阅读(153)  评论(0)    收藏  举报

导航