文章读写

读写文章是最常见的 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. Redis主从复制及状态监测

    参考链接:http://www.cnblogs.com/morvenhuang/p/4184262.html #配置redis主从复制: #安装redis- master slave #修改slave ...

  2. VB6之写注册表

    难免会遇到写注册表的情况,写了个实用点的RegWrite函数.为了减少代码量,用WScript.Shell取代了API来实现. 使用方式就在注释中了,就不再过多解释了.PS:注释比实现代码要丰富多了, ...

  3. (转载)Oracle10g 数据泵导出命令 expdp 使用总结(二)

    原文链接:http://hi.baidu.com/edeed/item/2c454cff5c559f773d198b94 Oracle10g 数据泵导出命令 expdp 使用总结(一) 1.1.2 e ...

  4. 随记之 -- diy相册

    最近一段时间楼下在整修房子,一到早晨6点多的时候,电钻声.敲打声齐鸣,实在是不能好好的睡个安稳觉 (┳_┳)... 这周六像往常一样,以为又要被惊醒了,所以早早的就醒了,谁知竟然出奇的安静,难道施工队 ...

  5. HTTP模拟工具【C#/Winform源码】、Json绑定TreeView控件、使用了MetroModernUI、RestSharp、Dapper.Net、Newtonsoft.Json、SmartThreadPool这几个主要开源框架

    HTTP模拟工具 开发语言:C#/Winform开发工具:Visual Studio 2017数据库:   SQLite使用框架:界面-MetroModernUI              Http请 ...

  6. Excel导出百万级数据解决方案

    因项目业务,需要导出百万级数据到excel,在研究了各种方案后,最终确定了用POI的SXSSFWorkbook. SXSSFWorkbook是POI3.8以上新增的,excel2007后每个sheet ...

  7. T4 代码生成 Demo (抽奖程序)

    参考自这位大狮的:  https://github.com/Pencroff/Dapper-DAL/blob/master/Dapper-DAL/Models/ModelGenerator.tt 项目 ...

  8. 走进json

    纯做笔记,请多指教... 1,json格式: 非数组: {"key" : "value"} 数组:[{"key" : "value ...

  9. 设计模式(3)抽象工厂模式(Abstract Factory)

    设计模式(0)简单工厂模式 设计模式(1)单例模式(Singleton) 设计模式(2)工厂方法模式(Factory Method) 源码地址 0 抽象工厂模式简介 0.0 抽象工厂模式定义 抽象工厂 ...

  10. Python蜕变-2017-4-23

    我的第一篇博客,这是试水练习.这次上的菜是Haporxy配置文件操作. <1> 上需求: 具体配置文件如下: global log 127.0.0.1 local2 daemon maxc ...