首页 > 编程 > Python > 正文

Python对CSV、Excel、txt、dat文件的处理

2020-02-15 22:59:53
字体:
来源:转载
供稿:网友

python读取txt文件:(思路:先打开文件,读取文件,最后用for循环输出内容)

1、读取

1.1基于python csv库

#3.读取csv至字典x,yimport csv# 读取csv至字典csvFile = open(r'G:/训练小样本.csv', "r")reader = csv.reader(csvFile)#print(reader)# 建立空字典result = {}i=0for item in reader: if reader.line_num==1: continue result[i]=item i=i+1# 建立空字典 j=0xx={}yy={}for i in list(range(29)): xx[j]=result[i][1:-1] yy[j]=result[i][-1] # print(x[j]) # print(y[j]) j=j+1csvFile.close()##3.1字典转换成listX=[]Y=[]for i in xx.values(): X.append(i)for j in xx.values(): X.append(j) 

改进的CSV读取,直接从CSV文件读取到 list:

#加载数据 def loadCSV(filename):  dataSet=[]  with open(filename,'r') as file:  csvReader=csv.reader(file)  for line in csvReader:  dataSet.append(line)  return dataSet 

读取的方式,是一行一行读取。

1.2 pandas读取

import pandas as pdtest_df = pd.read_excel(r'G:/test_linearRegression.xlsx')

2、写入

import csv#程序三with open(r'G:/0pythonstudy/chengxu/test.csv','w',newline='') as myFile:  myWriter=csv.writer(myFile)  myWriter.writerow([7,'g'])  myWriter.writerow([8,'h'])  myList=[[1,2,3],[4,5,6]]  myWriter.writerows(myList) # myFile.close()with open(r'G:/0pythonstudy/chengxu/test.csv',"r") as data: result=csv.reader(data) for item in result: print(item)

写入,如果纯用 open(r'G:/0pythonstudy/chengxu/test.csv','w'),就会出现多出一空行。

二、Excel文件处理

1、读取
方法一:

使用Python的 xlrd包。

#1、导入模块import xlrd#2、打开Excel文件读取数据data = xlrd.open_workbook('test_data.xlsx')# print('data',data)#3、使用技巧#获取一个工作表table = data.sheets()[0] #通过索引顺序获取# print('table',table)print(table.nrows)#table 行数print(table.ncols)table = data.sheet_by_index(0) #通过索引顺序获取# print('table',table)table = data.sheet_by_name(u'Sheet1')#通过名称获取# 获取整行和整列的值(数组)i=1print(table.row_values(i))#获得第i行数据print(table.col_values(i))#获得第i列数据

运行结果:

92[2.0, 6.0][5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0]

方法二:

或者,可以把Excel文件转换成csv格式文件,直接修改后缀名,好像会出错,还是建议另存为修改成csv文件。

方法三:
使用pandas包

import pandas as pdtest_df = pd.read_excel(r'G:/test.xlsx')

pandas 读取为dataframe格式,其中dataframe.values是nparray格式,nparray.tolist()是python list 格式。

注意:pandas和 xlrd的区别在于,pandas会把第一行和第一列作为索引的表头;xlrd则会把所有的数据都读取,没有索引表头一说。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表