python模块(2)
1.OS模块
print(os.getcwd()) #获取当前工作目录
os.chdir('E:\python练习\python35学习') #更改目录
print(os.getcwd())
E:\python练习\python35学习\Day5
E:\python练习\python35学习
print(os.curdir) #当前目录
print(os.pardir) #父级(上一级)目录
print(os.sep) #路径分隔符
print(os.pathsep) #文件路径分割符
print(os.name) #当前使用平台名称,win-->'nt',Linux-->'posix'
print(os.environ) #环境变量(以字典方式显示)
.
..
\
;
nt
(略)
os.makedirs(r'E:\a\b\c\d') #递归创建多级目录
os.removedirs(r'E:\a\b\c\d') #从后面逐级判断目录是否为空,若为空则删除
os.mkdir(r'E:\a') #一次只能创建一级目录
os.rmdir(r'E:\a') #一次只能删除一级目录,若为空删除,否则不删
os.remove(r'E:\CLion\CLion 2017.2.2\build.txt') #删除文件
print(os.listdir(r'E:\CLion\CLion 2017.2.2')) #显示指定目录下的所有目录和文件,包括隐藏文件
os.rename(r'E:\python练习\fib.py',r'E:\python练习\fibnan1.py') #重命名
print(os.stat(r'E:\python练习')) #文件或目录状态信息
['bin', 'help', 'jre64', 'lib', 'license', 'plugins']
os.stat_result(st_mode=16895, st_ino=18295873486193234, st_dev=2227732002, st_nlink=1, st_uid=0, st_gid=0, st_size=4096, st_atime=1516964219, st_mtime=1516964219, st_ctime=1499412376)
os.system('ifconfig') #运行shell命令
print(os.path.abspath(__file__)) #绝对路径
print(os.path.dirname('E:\python练习\python35学习\Day5\os_test.py')) #最后一个\之前的
print(os.path.basename('E:\python练习\python35学习\Day5')) #最后一个\之后的
print(os.path.split('E:/python练习/python35学习/Day5/os_test.py')) #将文件与目录拆分开,形成元组
print(os.path.exists('E:/python练习/python35学习/Day5')) #判断文件或目录是否存在
print(os.path.isabs('python练习/python35学习/Day5/os_test.py')) #判断是否是绝对路径
print(os.path.isfile('E:/python练习/python35学习/Day5/os_test.py')) #判断是否是文件
print(os.path.isdir('E:/python练习/python35学习/Day5/os_test.py')) #判断是否是目录
print(os.path.join(r'E:/python练习/python35学习/Day5/',r'Day5.txt')) #路径连接
print(os.path.getatime('E:/python练习/python35学习/Day5/os_test.py')) #最后的存取时间access
print(os.path.getmtime('E:/python练习/python35学习/Day5/os_test.py')) #最后的修改时间modify
2.shutil模块(主要用于文件复制)
先创建file对象,再进行复制
import shutil
f1=open('本章小结')
f2=open('小结2','w')
shutil.copyfileobj(f1,f2) #复制文件对象(需要先open)
直接复制
shutil.copyfile("小结2","笔记") #复制文件(无需先open)
shutil.copy("笔记","笔记2")
复制文件状态
shutil.copystat("本章小结","笔记") #修改状态:atime,mtime
级联复制or级联删除
shutil.copytree('a','a1') #级联复制目录
shutil.rmtree('a1') #删除多级目录
由目录生成压缩包 make_archive(base_name,format,root_dir)
# base_name:生成压缩包的路径、文件名,
# format:压缩包的种类:zip,tar,gztar,batar
# root_dir:要压缩的文件路径(默认当前目录)
shutil.make_archive('www','zip','a') #生成压缩包
3.json与pickle模块(序列化中应注意的问题,dump一次,load一次(相当于文件中始终只有最新一次的‘快照’))
json:解决了不同语言,不同平台之间的数据交换
pickle:python自己的数据类型进行交互,支持所有python数据类型 json序列化:
info={
'name':'cecelia',
'age':23,
} j_str=json.dumps(info) #将数据通过特殊的形式转化为所有语言都认识的字符串
print(j_str)
with open('info1','w',encoding='utf-8') as f:
json.dump(info,f) #将数据通过特殊的形式转化为所有语言都认识的字符串,并写入文件
f.close()
pickle序列化:
import pickle
def test():
print('this is for our test')
info = {
'name': 'cecelia',
'age': 23,
'func': test
}
p_str=pickle.dumps(info) #pickle.dump将数据转化为只有python认识的字符串
print(p_str)
with open('info','wb') as f:
pickle.dump(info,f) #pickle.dump将数据转化为只有python认识的字符串,并写入文件
f.close()
json反序列化:
import json with open('info1','r') as f:
data=json.load(f)
f.close() print(data['name'])
pickle反序列化:
import pickle def test():
print(' testing ') with open('info','rb') as f:
data=pickle.load(f)
f.close() print(data['func']())
4.shelve模块:对pickle的进一步封装
写入:
import shelve
import datetime d=shelve.open('shelve testing') info={
"age":22,
"tel":12332973
}
name=['alex','bob','cindy'] d['name']=name
d['info']=info
d['date']=datetime.datetime.now()
读取:
import shelve
import datetime d=shelve.open('shelve testing') print(d.get('name'))
print(d.get('info'))
print(d.get('date'))
python模块(2)的更多相关文章
- 使用C/C++写Python模块
最近看开源项目时学习了一下用C/C++写python模块,顺便把学习进行一下总结,废话少说直接开始: 环境:windows.python2.78.VS2010或MingW 1 创建VC工程 (1) 打 ...
- Python模块之configpraser
Python模块之configpraser 一. configpraser简介 用于处理特定格式的文件,其本质还是利用open来操作文件. 配置文件的格式: 使用"[]"内包含 ...
- Python模块之"prettytable"
Python模块之"prettytable" 摘要: Python通过prettytable模块可以将输出内容如表格方式整齐的输出.(对于用Python操作数据库会经常用到) 1. ...
- python 学习第五天,python模块
一,Python的模块导入 1,在写python的模块导入之前,先来讲一些Python中的概念性的问题 (1)模块:用来从逻辑上组织Python代码(变量,函数,类,逻辑:实现一个功能),本质是.py ...
- windows下安装python模块
如何在windows下安装python模块 1. 官网下载安装包,比如(pip : https://pypi.python.org/pypi/pip#downloads) pip-9.0.1.tar. ...
- 安装第三方Python模块,增加InfoPi的健壮性
这3个第三方Python模块是可选的,不安装的话InfoPi也可以运行. 但是如果安装了,会增加InfoPi的健壮性. 目录 1.cchardet 自动检测文本编码 2.lxml 用于解析 ...
- Python基础篇【第5篇】: Python模块基础(一)
模块 简介 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就 ...
- python 模块加载
python 模块加载 本文主要介绍python模块加载的过程. module的组成 所有的module都是由对象和对象之间的关系组成. type和object python中所有的东西都是对象,分为 ...
- pycharm安装python模块
这个工具真的好好,真的很喜欢,它很方便,很漂亮,各种好 pycharm安装python模块:file-setting-搜索project inte OK
- Python模块常用的几种安装方式
Python模块安装方法 一.方法1: 单文件模块直接把文件拷贝到 $python_dir/Lib 二.方法2: 多文件模块,带setup.py 下载模块包,进行解压,进入模块文件夹,执行:pytho ...
随机推荐
- Python笔记 #19# 实现bpnn
代码编辑&解释工具:Jupyter Notebook 快速入门 形象说明BP神经网络的用法(图片来自推特): Bpnn类最主要的三个方法: initialize方法,用于设定神经网络的层数.各 ...
- Linux使用退格键时出现^H解决方法
以前在linux下执行脚本不注意输错内容需要删除时总是出现^H ,以前不知道真相的我没办法只有再重头运行一次脚本,后来发现其实时有解决办法的,所以记录一下. ^H不是H键的意思,是backspace. ...
- Excel vba map/dictionary
今天在调整一生成java代码的工具时,要用到在不同语言间互转数据类型的逻辑,原来的代码中根据excel记录的行号来计算,再到另外一个collection中获取,个人想着这也太土鳖了,于是搜了下,在vb ...
- Js扩容
/*脚本统一调用工具(企业端)*/ //杂项工具 var MiscUtils = { //去除字符串中所有的空格 ClearStringEmpty: function (str) { var strR ...
- Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals) Problem A - B
Pronlem A In a small restaurant there are a tables for one person and b tables for two persons. It i ...
- Git pull的时候遇到问题
转载:https://www.jianshu.com/p/7b1c58e0a9ef 使用git从远程pull代码时报错: error: The following untracked working ...
- Python3 tkinter基础 Listbox height 显示行数的上限
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- tp框架中的一些疑点知识-5
关于vim中的缓存区的前后bp和bn的界定 通过命令ls可以看到 缓存区的 排序. 最开始打开的文件排在最上面, 序号最小. 那么它们就是 更 前 的缓冲区. 序号更前的用bp, 序号靠后的用bn. ...
- 论文笔记:Semantic Segmentation using Adversarial Networks
Semantic Segmentation using Adversarial Networks 2018-04-27 09:36:48 Abstract: 对于产生式图像建模来说,对抗训练已经取得了 ...
- iframe初始化属性
<iframe id="user" src="xxx.html" frameborder="0" width="" ...