Python读取文件

       学习的时候经常需要读取文件中的数据,今天写一个笔记记录一下

Python 读取文件一般需要三个步骤:1.打开,2读取,3关闭

1.打开文件:经常使用的是Python自带的open函数

open(...)
    open(name[, mode[, buffering]]) -> file object
    
    Open a file using the file() type, returns a file object.  This is the
    preferred way to open a file.  See file.__doc__ for further information.

name:文件名(必须有)

mode:有很多种模式如只读(r),二进制读(rb),写(w),二进制写(wb)等(可以省略)

buffering:缓存(没有使用过,可以省略不用设置)

f = open(filename)

2.读取文件:文件的读取可以使用read、readline或者readlines

read:一次读取全部的文档,返回的是一个字符串。优点是速度快省事,缺点占用内存大;

f.read()

readline:一次只读取文档中的一行,返回的值是字符串型。优点:占用内存小,缺点:一次只能读取一行,速度慢比较麻烦

f.readline()

readlines:一次可以读取全部文档,返回值是一个列表,每行之间以"\r\n结束"。优点:一次读取全部内容,缺点:占用的内存大。

f.readlines()

3.关闭文档:Python对文件读取完成之后一定要使用close()关闭来释放资源。

f.close()

注:每次打开文档我们都需要相应的关闭文档的命令,为了简便我们使用with函数

with open(filename) as f:

例:以一个文档举例完整的读取一个txt文档

文档的内容:

Python读取文件_第1张图片

with open("test.txt") as f:
	contents = f.readlines()
	print contents

打印的内容为一个list

['5837\t4.736156\t0.029871\tsmallDoses\r\n', '39808\t10.839526\t0.836323\tlargeDoses\r\n', '20944\t4.194791\t0.235483\tsmallDoses\r\n', '22146\t14.936259\t0.888582\tlargeDoses\r\n']

使用的txt文档中是以“\t”作为两个数据之间的间隔,“\r\n”作为两行间隔

import numpy as np 
list1 = []
with open("test.txt") as f:
	contents = f.readlines()
	for content in contents:
		con = content.strip().split('\t')
		list1.append(con)
		array = np.array(list1)

打印的内容为

['5837' '4.736156' '0.029871' 'smallDoses']
['39808' '10.839526' '0.836323' 'largeDoses']
['20944' '4.194791' '0.235483' 'smallDoses']
['22146' '14.936259' '0.888582' 'largeDoses']

对比其他的两种读取方法:

import numpy as np
list1 = []
with open("test.txt") as f:
	contents = f.read().split("\r\n")
	for content in contents:
		if content:
			con = content.split("\t")
			list1.append(con)
array = np.array(list1)
import numpy as np
list1 = []
with open("test.txt") as f:
	while True:

		content = f.readline()
		if not content:
			break
		con = content.strip().split("\t")
		list1.append(con)

 

你可能感兴趣的:(Python读取文件)