Python对CSV、Excel、txt、dat文件的处理
python读取txt文件:(思路:先打开文件,读取文件,最后用for循环输出内容)
1、读取
1.1基于pythoncsv库
#3.读取csv至字典x,y
importcsv
#读取csv至字典
csvFile=open(r'G:\训练小样本.csv',"r")
reader=csv.reader(csvFile)
#print(reader)
#建立空字典
result={}
i=0
foriteminreader:
ifreader.line_num==1:
continue
result[i]=item
i=i+1
#建立空字典
j=0
xx={}
yy={}
foriinlist(range(29)):
xx[j]=result[i][1:-1]
yy[j]=result[i][-1]
#print(x[j])
#print(y[j])
j=j+1
csvFile.close()
##3.1字典转换成list
X=[]
Y=[]
foriinxx.values():
X.append(i)
forjinxx.values():
X.append(j)
改进的CSV读取,直接从CSV文件读取到list:
#加载数据 defloadCSV(filename): dataSet=[] withopen(filename,'r')asfile: csvReader=csv.reader(file) forlineincsvReader: dataSet.append(line) returndataSet
读取的方式,是一行一行读取。
1.2pandas读取
importpandasaspd test_df=pd.read_excel(r'G:\test_linearRegression.xlsx')
2、写入
importcsv #程序三 withopen(r'G:\0pythonstudy\chengxu\test.csv','w',newline='')asmyFile: myWriter=csv.writer(myFile) myWriter.writerow([7,'g']) myWriter.writerow([8,'h']) myList=[[1,2,3],[4,5,6]] myWriter.writerows(myList) #myFile.close() withopen(r'G:\0pythonstudy\chengxu\test.csv',"r")asdata: result=csv.reader(data) foriteminresult: print(item)
写入,如果纯用open(r'G:\0pythonstudy\chengxu\test.csv','w'),就会出现多出一空行。
二、Excel文件处理
1、读取
方法一:
使用Python的xlrd包。
#1、导入模块
importxlrd
#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=1
print(table.row_values(i))#获得第i行数据
print(table.col_values(i))#获得第i列数据
运行结果:
9 2 [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包
importpandasaspd test_df=pd.read_excel(r'G:\test.xlsx')
pandas读取为dataframe格式,其中dataframe.values是nparray格式,nparray.tolist()是pythonlist格式。
注意:pandas和xlrd的区别在于,pandas会把第一行和第一列作为索引的表头;xlrd则会把所有的数据都读取,没有索引表头一说。
三、dat文件处理
把.dat文件修改成.txt格式文件。
这里可以参考python批量更改文件后缀名一文。
四、txt文件处理
a=numpy.loadtxt('odom.txt')
a[[2.49870000e-01 2.50250000e-01 [3.64260000e+03 3.72430000e+03 [4.53960000e+03 4.50590000e+03 ..., [4.74110000e+01 4.89660000e+01 [4.10930000e+01 4.20480000e+01 [1.83510000e+01 1.68250000e+01 a.shape(52,500)
fp=open('test.txt','r')
lines=fp.readlines()
fp.close()
forlineinlines:
username=line.split(',')[0]
password=line.split(',')[1]
importcsv
date=csv.reader(open('test.csv','r'))
fortestindate:
printtest
printtest[0]
importxlrd book=xlrd.open_workbook(data_dirs()+'/system.xlsx') sheet=book.sheet_by_index(0) printsheet.cell_value(0,2)
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。如果你想了解更多相关内容请查看下面相关链接