Python学习笔记-文本处理(1)

时间:2022-12-20 13:49:11

open read readline readlines 初阶

测试文件train_data.txt

以下是部分数据

4.45925637575900    8.22541838354701    0
0.0432761720122110  6.30740040001402    0
6.99716180262699    9.31339338579386    0
4.75483224215432    9.26037784240288    0
8.66190392439652    9.76797698918454    0
···
···
4.15244831176753    1.44597290703838    1
9.55986996363196    1.13832040773527    1
1.63276516895206    0.446783742774178   1
9.38532498107474    0.913169554364942   1

1.open

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

file:文件路径
mode:文件打开模式
r:以只读方式打开文件(默认)
w:以写入的方式打开文件,会覆盖已存在的文件
x:如果文件已经存在,使用此模式打开会引发异常
a:以写入模式打开,如果文件存在,则在末尾追加写入
b:以二进制模式打开文件
t:以文本模式打开(默认)
+:可读写模式
U:通用换行符支持
open下面的函数:
f.close()—-关闭文件
f.read()—-读取字符
f.readline()—-以写入模式打开,如果文件已存在,则在末尾追加
f.write(str)—-将字符串str写入文件
f.writeline(seq)—-写入字符串序列,返回迭代对象
f.seek(offset,from)—-from(0表示文件的起始位置,1代表当前位置,2代表文件末尾)偏移offset个位置
f.tell()—-返回当前在文件中的位置

example:

f = open("train_data.txt")
In[2]: f
Out[2]: <_io.TextIOWrapper name='train_data.txt' mode='r' encoding='UTF-8'>

此时出来的是一个io.text,我们还需要read才能看里面的数据。

2.read

read()      #return one big string

官网说返回一个大字符串,这个函数也确实将文件里面的东西以字符串的形式返回。

f = open("train_data.txt")
ff = f.read()

Python学习笔记-文本处理(1)

3.readline

顾名思义,就是一次读一行。

f = open("train_data.txt")
f1 = f.readline()

此时显示的是第一行:

4.45925637575900    8.22541838354701    0

但是readline是记录文件指针的,再次执行readline(),会跳到下一行。

f = open("train_data.txt")
f1 = f.readline()
f2 = f.readline()

结果就是:

f1
Out[22]: '4.45925637575900\t8.22541838354701\t0\n'

f2
Out[23]: '0.0432761720122110\t6.30740040001402\t0\n'

到达最后一行接着readline就是显示''

f5
Out[29]: ''

4.readlines

官方说返回一个list

readlines   #returns a list of lines

Python学习笔记-文本处理(1)
Python学习笔记-文本处理(1)
感觉readlines跟read差不多,都是直接把文件全部返回。但是,read返回的是string,readlines返回的是list。