目录

os、os.path

sys

json

pickle、shelve、xml、re、logging、configparse、hashlib未完待续……


os、os.path

Python的os模块里面定义了常用的路径、文件操作。

os.curdir  # curdir相对路径的当前路径“点”
os.pardir  # pardir相对路径的父目录“点点”。
os.sep  # sep适应操作系统的路径分隔符,对于windows是“\”,对于*nix是“/”。
os.linesep  # linesep适应操作系统的换行符,对于windows是“\r\n”,对于linux是“\n”。
os.pathsep  # pathsep适应于操作系统的分割路径的符号,对于windows是分号“;”,对于linux是冒号“:”。
import os# 获取绝对路径
abspath = os.path.abspath(__file__)
print(abspath)
# 获取路径中的路径
print(os.path.dirname(abspath))
# 获取路径中文件名
print(os.path.basename(abspath))# 获取当前工作目录路径
print(os.getcwd())# 路径拼接,当获取到两个路径片段时,进行拼接
cvdir = os.path.join(os.pardir, 'cv_work')
# 切换路径
os.chdir(cvdir)
os.chdir(os.pardir + os.sep + 'day22')# 创建目录
os.makedirs('dir1/dir2')
# 删除目录,直到遇见不为空的目录
os.removedirs('dir1/dir2')# 获取当前目录下所有的目录名和文件名
ld = os.listdir(os.curdir)
for i in ld:if os.path.isabs(i):print('--', i, 'is abs path')passif os.path.isdir(i):print('--', i, 'is a direcory')passif os.path.isfile(i):print('--', i, 'is a file')# 文件的元数据
print(os.stat('day22_os.py'))# 文件的元数据
print(os.stat('day22_os.py'))# 获取环境变量
for k, v in os.environ.items():print(k, v)

sys

sys里面记住sys.argv,用于接收命令行参数,是一个列表。列表的sys.argv的0位置是Python脚本本身,用户输入参数从sys.argv列表1位置开始。

sys.path在上一篇博客里面讲了,用来加入BASE_DIR。

import sysprint(sys.argv)
# C:\dev\day22>python day22_sys.py test abc 123
# ['day22_sys.py', 'test', 'abc', '123']print(sys.path)
# ['C:\\dev\\day22', 'C:\\dev', 'C:\\Python36\\python36.zip', 'C:\\Python36\\DLLs', 'C:\\Python36\\lib', 'C:\\Python36', 'C:\\Python36\\lib\\site-packages', 'C:\\Program Files\\JetBrains\\PyCharm 2018.3.5\\helpers\\pycharm_matplotlib_backend']

json

用作数据交换的模块。我们可以用json、pickle、xml做数据交换。json牛逼就在与可以在不同语言的数据类型之间做交换。json转换都干了些啥呢?json将任意数据类型转换成了json字符串,注意是json字符串,不是普通的字符串,这样大家都遵循json字符串的标准读写。

Python的json模块通过json.dumps和json.loads进行任意数据类型和json字符串之间的转换,这两个接口比较灵活,推荐使用。另外两个不带s的接口json.dump和json.load因为不能灵活操作,不推荐使用。

import json# python 任意数据类型
dic = {'db': 'mysql'}
i = 8888
s = 'oracle'
nums = ['linux', 22, True]
print('python-dic', type(dic), dic)
print('python-int', type(i), i)
print('python-str', type(s), s)
print('python-list', type(nums), nums)
# python-dic <class 'dict'> {'db': 'mysql'}
# python-int <class 'int'> 8888
# python-str <class 'str'> oracle
# python-list <class 'list'> ['linux', 22, True]# 转换成json字符串
json_data1 = json.dumps(dic)  # {'db': 'mysql'}--->{"db": "mysql"}--->'{"db": "mysql"}'
json_data2 = json.dumps(i)  # 8888---> "8888"
json_data3 = json.dumps(s)  # 'oracle'---> "oracle"
json_data4 = json.dumps(nums)  # ['linux', 22, True]--->["linux", 22, True]--->'["linux", 22, True]'
print(type(json_data1), json_data1)
print(type(json_data2), json_data2)
print(type(json_data3), json_data3)
print(type(json_data4), json_data4)
# 注意字符串的单引号都变成了双引号,这是json字符串的规范
# <class 'str'> {"db": "mysql"}
# <class 'str'> 8888
# <class 'str'> "oracle"
# <class 'str'> ["linux", 22, true]# 先写入json字符串,再读取出来
# dumps得到json字符串
# loads得到原来的数据类型
f_write = open('json_data', 'w')
f_write.write(json.dumps(dic))
f_write.close()f_read = open('json_data', 'r')
load_data = json.loads(f_read.read())
print(type(load_data), load_data)
f_read.close()
# <class 'dict'> {'db': 'mysql'}

pickle、shelve、xml、re、logging、configparse、hashlib未完待续……

Python基础18-常用模块之os、sys、json、pickle、shelve、xml、re、logging、configparse、hashlib等相关推荐

  1. Python 五个常用模块资料 os sys time re built-in

    1.os模块   os模块包装了不同操作系统的通用接口,使用户在不同操作系统下,可以使用相同的函数接口,返回相同结构的结果.   os.name:返回当前操作系统名称('posix', 'nt', ' ...

  2. Python全栈开发之路 【第六篇】:Python基础之常用模块

    本节内容 模块分类:好处:标准库:help("modules") 查看所有python自带模块列表第三方开源模块:自定义模块:模块调用: import modulefrom os ...

  3. python基础之常用模块

    6.TEXT PROCESSING SERVICES :文本处理服务 6.1.re 8.DATA TYPES : 数据类型 8.1.datetime 8.2.collections 8.3.copy ...

  4. Python基础8—常用模块

    一.使用模块 1.使用前要导入模块,导入的语法为:import 模块名 2.使用模块中的函数语法为: 模块名.函数名(列表):使用模块中的变量语法为:模块名.变量 二.常用模块 1.sys ①获取当前 ...

  5. 常用模块(json/pickle/shelve/XML)

    一.json模块(重点) 一种跨平台的数据格式 也属于序列化的一种方式 介绍模块之前,三个问题: 序列化是什么? 我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化. 反序列化又是什么? 将 ...

  6. Python-Day4 Python基础进阶之生成器/迭代器/装饰器/Json pickle 数据序列化

    一.生成器 通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面 ...

  7. python模块--json \ pickle \ shelve \ XML模块

    一.json模块 之前学习过的eval内置方法可以将一个字符串转成一个python对象,不过eval方法时有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊类型的时候,e ...

  8. python常见模块命令(os/sys/platform)

    python常见模块命令(os/sys/platform) 一.Os Python的标准库中的os模块主要涉及普遍的操作系统功能.可以在Linux和Windows下运行,与平台无关. os.sep 可 ...

  9. Python中的常用模块

    1.sys模块(内置模块) 在sys模块中定义了一些函数和变量,用来设置和获取系统的信息. # Python中的常用模块:sys模块 import sys sys.path.append('./tes ...

最新文章

  1. 全球IP地址数周内用完,或现无法上网情况
  2. Linux 命令行界面-GUI界面
  3. 160个Crackme032用ProcessMonitor拆解KeyFile保护
  4. [分享]Host文件的原理解释及应用说明
  5. WebStorm 预览时把浏览器地址localhost 改成IP
  6. 解决 springboot 启动报错 -- Cannot determine embedded database driver class for database type NONE
  7. php怎样传数据到html代码,传递数据到PHP文件与HTML模板
  8. 运用时间增益方法对 gprmax 模拟的探地雷达数据进行处理
  9. SilverlightComponent for ExtJS
  10. 头发制作_【绘画教程】动漫人物的头发该怎么画?
  11. 复杂作业车间调度-单机调度问题研究
  12. 【数据结构】八种常见数据结构介绍
  13. APP自动化测试--IOS
  14. 【C语言】c语言练习题【2】(适合初学者)
  15. 图像处理——插值算法
  16. Docker学习之数据卷操作:Day4
  17. 新媒体运营教程:短视频剧本创作技巧
  18. Atitit.论图片类型 垃圾文件的识别与清理  流程与设计原则 与api概要设计 v2 pbj...
  19. 测试人员需要具备哪些基本技能
  20. SAP小技巧 发票校验BAPI调用总结

热门文章

  1. 文件分享微信小程序的设计与开发 Java开发微信小程序 毕业设计
  2. 【Android开发】:在任意目录执行NDK编译
  3. Oracle 变量绑定与变量窥视合集系列二
  4. redis cluster 安装配置
  5. In Gradle projects, always use http://schemas.andr
  6. 转:strcat与strcpy与strcmp与strlen
  7. B2B行业网站10种经营模式研究及组合方案
  8. 设计模式:状态模式(State Pattern)
  9. Mac中将delete键定义为删除键
  10. UpdateData函数(转)