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函 ...
随机推荐
- javascript之原型(prototype)
今天是第一次写博客,写点在javascript中重要的一个概念----原型(prototype): 原型,顾名思义,就是一切事物的模板. 柏拉图在<理想国>卷10中说:"床不是有 ...
- EasyNetQ之多态发布和订阅
你能够订阅一个接口,然后发布基于这个接口的实现. 让我们看下一个示例.我有一个接口IAnimal和两个实现Cat和Dog: public interface IAnimal { string Name ...
- 适合初学者的一个分布式环境搭建过程(spring boot + zookeeper + dubbo + mybatis + mysql)
本人也是才开始接触 阿里巴巴的开源分布式框架 dubbo,因为现在微服务框架 spring boot也非常的火,然后结合dubbo的官网搭建这个开发环境. 一.首先 zookeeper作为集群管理服务 ...
- English - Green Peanut Butter
There is a guy. He wants to drink 12 cups of green peanut butter. He needs green peanut butter. So h ...
- 原生JS的HTTP请求
ar xhr = new XMLHttpRequest(); xhr.onreadystatechange = function(){ if( xhr.readyState == 4){ if( xh ...
- java String/StringBuilder 方法
String 定义的对象不能被修改,修改其实是创建了一个新的对象. 如 : String s1 = "1"; s1 = s1+ "2"; 本来s1 是指向”1“ ...
- 在react.js上使用antd-design没有样式
两种解决方法: 第一种: 在.babelrc中加入 { "presets": ["es2015", "react"], "plug ...
- Android使用ViewPager实现导航菜单
首先设置页面的Fragment布局: public class TabFragment extends ListFragment { @Override public void onViewCreat ...
- vue 自定义组件
1.Vue.component('component-test', { props:{}, data:function(){ return{} }, mounted:function(){}, com ...
- HTTP学习
HTTP(HyperText Transfer Protocol)全称"超文本传输协议" HTTP是基于 TCP/IP 协议的应用层协议 现在日常使用版本 HTTP/1.1 一个H ...