前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python对CSV、Excel、txt

python对CSV、Excel、txt

作者头像
py3study
发布2020-01-09 14:35:11
1.8K0
发布2020-01-09 14:35:11
举报
文章被收录于专栏:python3

一、CSV文件读写

1、读取

1.1基于python csv库

代码语言:javascript
复制
#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:

代码语言:javascript
复制
#加载数据  
def loadCSV(filename):  
    dataSet=[]  
    with open(filename,'r') as file:  
        csvReader=csv.reader(file)  
        for line in csvReader:  
            dataSet.append(line)  
    return dataSet  
代码语言:javascript
复制
读取的方式,是一行一行读取。

1.2 pandas读取

代码语言:javascript
复制
import pandas as pd
test_df = pd.read_csv(r'G:\test_linearRegression.csv',  sep = '\t', header = None)

2、写入

代码语言:javascript
复制
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包。

代码语言:javascript
复制
#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列数据

运行结果:

代码语言:javascript
复制
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包

代码语言:javascript
复制
import pandas as pd
test_df = pd.read_excel(r'G:\test.xlsx')

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

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

三、dat文件处理

直接读取

代码语言:javascript
复制
c = np.fromfile('test2.dat', dtype=int)

或者,把 .dat 文件修改成 .txt格式文件。

这里可以参考 python批量更改文件后缀名 一文。

四、txt文件处理

代码语言:javascript
复制
a = numpy.loadtxt('odom.txt') 
代码语言:javascript
复制
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)

Reference:

  1. Python csv模块;
  2. python_xlrd对Excel处理;
  3. python : 将txt文件中的数据读为numpy数组或列表;
  4. pandas read_csv API官网;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/09/07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、CSV文件读写
  • 二、Excel文件处理
    • 1、读取
    • 三、dat文件处理
    • 四、txt文件处理
    相关产品与服务
    文件存储
    文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档