2022年 11月 5日

python读取文件的几种方式

下面是不同场景较为合适的数据读取方法:

1.python内置方法(read、readline、readlines)

纯文本格式或非格式化、非结构化的数据,常用语自然语言处理、非结构文本解析、应用正则表达式等后续应用场景下,Python默认的三种方法更为合适。
1.1 read() : 一次性读取整个文件内容。推荐使用read(size)方法,size越大运行时间越长

读取整个文件,将文件内容放到一个字符串变量中,如果文件大于可用内存,不能使用这种处理。

  1. file_object = open("test.py",'r') #创建一个文件对象,也是一个可迭代对象
  2. try:
  3. all_the_text = file_object.read() #结果为str类型
  4. print (type(all_the_text))
  5. print ("all_the_text=",all_the_text)
  6. finally:
  7. file_object.close()

1.2readline() :每次读取一行内容。内存不够时使用,一般不太用

readline()每次读取一行,比readlines()慢得多,返回的是一个字符串对象,保存当前行的内容

  1. file_object1 = open("test.py",'r')
  2. try:
  3. while True:
  4. line = file_object1.readline()
  5. if line:
  6. print ("line=",line)
  7. else:
  8. break
  9. finally:
  10. file_object1.close()

1.3readlines() :一次性读取整个文件内容,并按行返回到list,方便我们遍历

  1. file_object2 = open("test.py",'r')
  2. try:
  3. lines = file_object2.readlines()
  4. print "type(lines)=",type(lines) #type(lines)= <type 'list'>
  5. for line in lines:
  6. print ("line=",line)
  7. finally:
  8. file_object2.close()

2.numpy库

结构化、纯数值型的数据,并且主要用于矩阵计算、数据建模的,使用Numpy的loadtxt更方便。
对于二进制的数据处理,使用Numpy的load和fromfile方法更为合适。

Numpy库的学习_木白星枝的博客-CSDN博客

3.pandas库
对于结构化的、探索性数据统计和分析场景,使用pandas方法进行读取,因为其提供了数据框,对数据进行任意翻转、切片、关联都很方便。

Pandas库的学习_木白星枝的博客-CSDN博客