Python 第八天
文章读写
读写文章是最常见的 IO 操作。
读
1.Python 中内置了open()函数,read()方法以及close()方法来打开文件
fi = open('test.html','r')
content = fi.read()
print(content)
fi.close()
2.由于文件读写时都有可能产生 IOError,一旦出错,close() 方法就不会调用,所以,我们可以通过 try...finally 来保证无论是否出错都能正确关闭文件
try:
fi = open('test.html','r')
content = fi.read()
print(content)
finally:
if f:
fi.close()
Python 中提供更简洁的 with...as 语句来实现上面的效果,能够自动调用 close() 方法
with open('test.html') as f:
print(f.read())read(),read(size),readline()————如果文件很小,read() 一次性读最方便,如果文件比较大使用 read(size) 比较安全。如果是配置文件可以使用 readlines() 比较方便
with open('test.html','r') as f:
for line in f.readlines:
print(line)二进制文件————要读取二进制文件,比如图片、视频等等,用'rb'模式打开文件即可:
with open('test.html','rb') as f:
pass对于非 UTF-8 编码的文本文件,需要给 open()函数传入 encoding 参数
f = open('test.html','r',encoding='gdk')
f.read()对于有些编码不规范的文件,你可能会遇到 UnicodeDecodeError。这时候我们可以通过为 open 参数添加 error 来实现
忽略不规范编码
with open('test.html','rb',encoding='gdk',error='ignore')
写
1.写文件和读文件是一样的,唯一的区别就是调用 open() 函数时,传入标识符 'w' 或者 'wb'
2.white() 方法可以用于写入文件
操作文件、目录
1.Python 中内置 os 模块可以直接调用操作系统提供的接口函数
import os
print(os.name)
print(dir(os))
2.在操作系统中定义的环境变量可以直接通过访问变量 os.environ
print(os.environ)
#要获取某个环境变量的值,可以调用 os.environ.get('key')
print(os.environ.get('x','default'))
3.操作文件和目录的函数一部分放在 os 模块中,一部分放在 os.path 下
##查看当前目录的绝对路径
os.path.abspath('.')
##os.path.jion()函数 接收两个参数 这样可以正确处理不同操作系统的路径分隔符
newPath = os.path.join('/Users/michael', 'testdir')
##os.path.join() 返回的一个字符串
##我们可以通过下面的方式增删目录
os.mkdir(newpath)
os.rmdir(newpath)
##同样道理,在我们拆分路径是,也不要直接去拆字符串。而是通过os.path.split()
##它会为你返回一个两部分的元组
os.path.split(newPath)
##os.path.splitext() 可以直接让你得到文件扩展名
os.path.splitext(Path)
#os.rename()文件重命名
#os.remove()文件删除
4.shutil 模块提供 os 的补充功能
Python 第八天的更多相关文章
- Python第八天 模块 包 全局变量和内置变量__name__ Python path
Python第八天 模块 包 全局变量和内置变量__name__ Python path 目录 Pycharm使用技巧(转载) Python第一天 安装 shell 文件 Pyt ...
- 孤荷凌寒自学python第八天 初识Python的序列之元组
孤荷凌寒自学python第八天 Python的序列之元组 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) (同步音频笔记:https://www.ximalaya.com/keji/19103 ...
- Python第八天
Python面向对象进阶 一.静态方法 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里可以通过 ...
- Python第八天——Json
json 模块 json 模块提供了非常完善的 Python 对象到 JSON 格式的转换 import json d = dict(name='Bob',age=20,score=88) json. ...
- python第八天)——购物车作业优化完成
发现之前的三级菜单代码有BUG现已经修改过来了 购物车程序:启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表允许用户根据商品编号购买商品用户选择商品后,检测余额是否够, ...
- Python第十五天 datetime模块 time模块 thread模块 threading模块 Queue队列模块 multiprocessing模块 paramiko模块 fabric模块
Python第十五天 datetime模块 time模块 thread模块 threading模块 Queue队列模块 multiprocessing模块 paramiko模块 fab ...
- Python第十四天 序列化 pickle模块 cPickle模块 JSON模块 API的两种格式
Python第十四天 序列化 pickle模块 cPickle模块 JSON模块 API的两种格式 目录 Pycharm使用技巧(转载) Python第一天 安装 shell 文件 Py ...
- Python第十三天 django 1.6 导入模板 定义数据模型 访问数据库 GET和POST方法 SimpleCMDB项目 urllib模块 urllib2模块 httplib模块 django和web服务器整合 wsgi模块 gunicorn模块
Python第十三天 django 1.6 导入模板 定义数据模型 访问数据库 GET和POST方法 SimpleCMDB项目 urllib模块 urllib2模块 ...
- Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函数 os模块 hashlib模块 platform模块 csv模块
Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函 ...
随机推荐
- H5编辑器核心算法和思想-遁地龙卷风
代码和特性在chrome49下测试有效. 文本渲染的本质是对文本节点的渲染,通过浏览器内置的对象Range可以获得选择的起始点.与终止点 var range = getRangeObject(); ...
- Chrome浏览器扩展开发系列之十三:消息传递Message
由于content scripts运行在Web页面的上下文中,属于Web页面的组成部分,而不是Google Chrome扩展程序.但是content scripts又往往需要与Google Chrom ...
- 使用 electron 做个播放器
使用 electron 做个播放器 本文同步更新在:https://github.com/whxaxes/blog/issues/8 前言 虽然 electron 已经出来好长时间了,但是最近才玩了一 ...
- JavaWeb 后端 <四> 之 Cookie HttpSession 学习笔记
一.会话管理概述 1.什么是会话? 好比一次通话.打开浏览器,点击多次链接(发出多次请求和收到多次的响应),关闭浏览器,这个过程就是一次会话. 有功能 可以 文件 新建会话 2.解决的问题是什么? ...
- 你要clean Android Studio project 么
原文:http://tekeye.uk/android/export-android-studio-project 如果嫌复制出来的项目太多,可以用文后的批处理删除一些文件,Android studi ...
- Java编程思想总结笔记The first chapter
总觉得书中太啰嗦,看完总结后方便日后回忆,本想偷懒网上找别人的总结,无奈找不到好的,只好自食其力,尽量总结得最好. 第一章 对象导论 看到对象导论觉得这本书 目录: 1.1 抽象过程1.2 每个对象 ...
- 用java调用oracle存储过程总结
以前一直没有动存储过程是用来干嘛的,后来请教朋友才换为自己的理解方式,用自己通俗的语言来说,就是把sql语句换为一个过程,也可以说是一个方法,每次直接给参数调用就好,使用存储过程查询速度快,系统只编译 ...
- Python之__loader__
主要引自:http://stackoverflow.com/questions/22185888/pythons-loader-what-is-it What is __loader__? __loa ...
- node.js存json数据到mysql
众所周知,mysql是无法存储json数据的,这个刚开始笔者也是知道的,也知道JSON.stringify()这个API的,但是当我真正要这样做利用JSON.stringify()讲要转换的JSON数 ...
- nyoj_118:修路方案(次小生成树)
题目链接 题意,判断次小生成树与最小生成树的权值和是否相等. 豆丁文档-- A-star和第k短路和次小生成树和Yen和MPS寻路算法 法一: 先求一次最小生成树,将这棵树上的边加入一个向量中,再判断 ...