文章读写

读写文章是最常见的 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()
  1. Python 中提供更简洁的 with...as 语句来实现上面的效果,能够自动调用 close() 方法

    with open('test.html') as f:

    print(f.read())

  2. read(),read(size),readline()————如果文件很小,read() 一次性读最方便,如果文件比较大使用 read(size) 比较安全。如果是配置文件可以使用 readlines() 比较方便

    with open('test.html','r') as f:

    for line in f.readlines:

    print(line)

  3. 二进制文件————要读取二进制文件,比如图片、视频等等,用'rb'模式打开文件即可:

    with open('test.html','rb') as f:

    pass

  4. 对于非 UTF-8 编码的文本文件,需要给 open()函数传入 encoding 参数

    f = open('test.html','r',encoding='gdk')

    f.read()

  5. 对于有些编码不规范的文件,你可能会遇到 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 第八天的更多相关文章

  1. Python第八天 模块 包 全局变量和内置变量__name__ Python path

    Python第八天  模块   包   全局变量和内置变量__name__    Python path 目录 Pycharm使用技巧(转载) Python第一天  安装  shell  文件 Pyt ...

  2. 孤荷凌寒自学python第八天 初识Python的序列之元组

    孤荷凌寒自学python第八天 Python的序列之元组 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) (同步音频笔记:https://www.ximalaya.com/keji/19103 ...

  3. Python第八天

    Python面向对象进阶 一.静态方法 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里可以通过 ...

  4. Python第八天——Json

    json 模块 json 模块提供了非常完善的 Python 对象到 JSON 格式的转换 import json d = dict(name='Bob',age=20,score=88) json. ...

  5. python第八天)——购物车作业优化完成

    发现之前的三级菜单代码有BUG现已经修改过来了 购物车程序:启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表允许用户根据商品编号购买商品用户选择商品后,检测余额是否够, ...

  6. Python第十五天 datetime模块 time模块 thread模块 threading模块 Queue队列模块 multiprocessing模块 paramiko模块 fabric模块

    Python第十五天  datetime模块 time模块   thread模块  threading模块  Queue队列模块  multiprocessing模块  paramiko模块  fab ...

  7. Python第十四天 序列化 pickle模块 cPickle模块 JSON模块 API的两种格式

    Python第十四天 序列化  pickle模块  cPickle模块  JSON模块  API的两种格式 目录 Pycharm使用技巧(转载) Python第一天  安装  shell  文件 Py ...

  8. Python第十三天 django 1.6 导入模板 定义数据模型 访问数据库 GET和POST方法 SimpleCMDB项目 urllib模块 urllib2模块 httplib模块 django和web服务器整合 wsgi模块 gunicorn模块

    Python第十三天   django 1.6   导入模板   定义数据模型   访问数据库   GET和POST方法    SimpleCMDB项目   urllib模块   urllib2模块 ...

  9. Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函数 os模块 hashlib模块 platform模块 csv模块

    Python第十一天    异常处理  glob模块和shlex模块    打开外部程序和subprocess模块  subprocess类  Pipe管道  operator模块   sorted函 ...

随机推荐

  1. H5编辑器核心算法和思想-遁地龙卷风

    代码和特性在chrome49下测试有效. 文本渲染的本质是对文本节点的渲染,通过浏览器内置的对象Range可以获得选择的起始点.与终止点   var range = getRangeObject(); ...

  2. Chrome浏览器扩展开发系列之十三:消息传递Message

    由于content scripts运行在Web页面的上下文中,属于Web页面的组成部分,而不是Google Chrome扩展程序.但是content scripts又往往需要与Google Chrom ...

  3. 使用 electron 做个播放器

    使用 electron 做个播放器 本文同步更新在:https://github.com/whxaxes/blog/issues/8 前言 虽然 electron 已经出来好长时间了,但是最近才玩了一 ...

  4. JavaWeb 后端 <四> 之 Cookie HttpSession 学习笔记

    一.会话管理概述 1.什么是会话? 好比一次通话.打开浏览器,点击多次链接(发出多次请求和收到多次的响应),关闭浏览器,这个过程就是一次会话. 有功能 可以  文件 新建会话 2.解决的问题是什么? ...

  5. 你要clean Android Studio project 么

    原文:http://tekeye.uk/android/export-android-studio-project 如果嫌复制出来的项目太多,可以用文后的批处理删除一些文件,Android studi ...

  6. Java编程思想总结笔记The first chapter

    总觉得书中太啰嗦,看完总结后方便日后回忆,本想偷懒网上找别人的总结,无奈找不到好的,只好自食其力,尽量总结得最好. 第一章  对象导论 看到对象导论觉得这本书 目录: 1.1 抽象过程1.2 每个对象 ...

  7. 用java调用oracle存储过程总结

    以前一直没有动存储过程是用来干嘛的,后来请教朋友才换为自己的理解方式,用自己通俗的语言来说,就是把sql语句换为一个过程,也可以说是一个方法,每次直接给参数调用就好,使用存储过程查询速度快,系统只编译 ...

  8. Python之__loader__

    主要引自:http://stackoverflow.com/questions/22185888/pythons-loader-what-is-it What is __loader__? __loa ...

  9. node.js存json数据到mysql

    众所周知,mysql是无法存储json数据的,这个刚开始笔者也是知道的,也知道JSON.stringify()这个API的,但是当我真正要这样做利用JSON.stringify()讲要转换的JSON数 ...

  10. nyoj_118:修路方案(次小生成树)

    题目链接 题意,判断次小生成树与最小生成树的权值和是否相等. 豆丁文档-- A-star和第k短路和次小生成树和Yen和MPS寻路算法 法一: 先求一次最小生成树,将这棵树上的边加入一个向量中,再判断 ...