从CSV格式文件中导入数据
csv格式的文件中数据以逗号作为分割,python库中csv模块支持读写各种方言1版本的csv文件。
操作步骤
import csv
from pprint import pprint // pprint可以自动识别列表中的行实现分行输出
filename = 'ch02-data.csv'
data = []
try:
with open(filename,'r') as f:
header = csv.reader(f)
reader = next(header) // 此处python3取消了reader.next()而用next()函数取而代之
data = [ row for row in reader ]
except FileNotFoundError :
msg = 'Sorry, the file' + filename + 'does not exist'
print(msg)
if header :
print(header)
print("=========")
pprint(data)
工作原理
- 导入csv模块后,用with语句打开文件,打开方式可以设置( ’ r ’ ),若只读取也可不具体设置
- 用with语句打开后,with语句的上下文管理器会帮助处理打开关闭文件,不必手动用close函数关闭文件
- 用csv模块中reader方法返回reader对象,并通过此对象来读取文件所有行
- 读取文件所有行时可以用列表解析式,或者麻烦一点用for循环2挨个读取
- csv文件中可能有文件头也可能没有,文件头是为了帮助读文件的人了解各数据的具体用处
补充
也可以用numpy中的loadtxt方法
import numpy
data = numpy.loadtxt(filename, dtype='string', delimiter=',')
从EXCEL文件中读入数据
操作步骤
import xlrd
filename = 'ch02-xlsxdata.xlsx'
wb = xlrd.open_workbook(filename)
ws= wb.Sheet_by_name('Sheet1')
dataset = [ ]
for r in range(ws.nrows) :
col = [ ]
for c in range(ws.ncols) :
col.append(ws.cell(r,c).value)
dataset.append(col)
from pprint import pprint
pprint(dataset)
工作原理
- xlrd模块中包含了处理xlsx文件的各种方法
- open_workbook方法通过传入一个filename值打开一个文件,再通过Sheet_by_name()方法打开一个sheet
- 再通过两个循环 range(ws.xrows), range(ws.xcols)一次用wx.cell(r,c).value来读取各单元格的数值