一:前言
最近在学爬虫,需要用到文件操作来存储数据,和用正则表达式来对数据进行挑选,
因此使用python的os库来进行文件操作和正则表达式库re来进行
二:步骤
2.1 使用os库来进行文件操作
2.1.1 读文件
在 Python 中,读文件主要分为三个步骤:
- 打开文件
- 读取内容
- 关闭文件
一般使用形式如下:
try:
f = open('/path/to/file', 'r') # 打开文件
data = f.read() # 读取文件内容
finally:
if f:
f.close() # 确保文件被关闭
注意到,我们在代码中加了 try...finally
,这是因为,如果打开和读取文件时出现错误,文件就没有被关闭。为了确保在任何情况下,文件都能被关闭,我们加了 try...finally
。
上面的代码中,’r’ 模式表示读模式,open
函数的常用模式主要有:
‘r’ | 读模式 |
---|---|
‘w’ | 写模式 |
‘a’ | 追加模式 |
‘b’ | 二进制模式(可添加到其他模式中使用) |
‘+’ | 读/写模式(可添加到其他模式中使用) |
上面的读文件做法很繁琐,我们可以使用 Python 的 with
语句来帮我们自动调用 close
方法:
with open('/path/to/file', 'r', encoding = 'utf-8') as f:
data = f.read()
可以看到,这种方式很简洁,而且还能在出现异常的情况下自动关闭文件。
通常而言,读取文件有以下几种方式:
- 一次性读取所有内容,使用
read()
或readlines()
; - 按字节读取,使用
read(size)
; - 按行读取,使用
readline()
;
2.1.2 读取所有内容
读取所有内容可以使用 read()
或 readlines()
。我们在上面已经介绍过 read()
了,现在,让我们看看 readlines()
。
readlines()
方法会把文件读入一个字符串列表,在列表中每个字符串就是一行。
假设有一个文件 data.txt,它的文件内容如下(数字之间的间隔符是’\t’):
10 1 9 9
6 3 2 8
20 10