文章读写
读写文章是最常见的 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 的补充功能