1、读取
1.1基于python csv库

#3.读取csv至字典x,y
import csv

# 读取csv至字典
csvFile = open(r'G:\训练小样本.csv', "r")
reader = csv.reader(csvFile)
#print(reader)

# 建立空字典
result = {}

i=0
for item in reader:
  if reader.line_num==1:
    continue
  result[i]=item
  i=i+1

 # 建立空字典  
j=0
xx={}
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+1

csvFile.close()

##3.1字典转换成list
X=[]
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 pd
test_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=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包

import pandas as pd
test_df = pd.read_excel(r'G:\test.xlsx')

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

注意: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)

总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

收藏 打印