1. 如何优雅地将dat,txt 或者excel 文件导入python
作拆李桐者:iamzcr
链接:https://www.hu.com/question/33535414/answer/56860505
来源:知乎
著作权归作者所有,转载请联系作者获得授权。为旅坦什么一定要用python呢,你用excel写一条公式,类似于:
=array('filter'=>"&A&")
然后按住右下角的十字架,一直往下拖,一堆数组就出来了,然后用php写进去就好了#-*- coding: utf-8 -*-
#encoding=utf-8
import MySQLdb
import xlrd
#打开excel
data = xlrd.open_workbook('testpython.xls')
#根据名字扰答拿到excel的某个表
table = data.sheet_by_name('Sheet1')
#行数
nrows = table.nrows
for rownum in range(1,nrows):
row = table.row_values(rownum)
print len(row)
# 打开数据库连接
db = MySQLdb.connect("localhost","root","","pythonmysql" )
#链接资源
cursor = db.cursor()
# SQL 插入语句
sql = 'insert into pyuser (username,password, email, qq) values("%s", "%s","%s","%s")' %
(row[0],row[1],row[2],row[3])
print sql
try:
# 执行sql语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except:
db.rollback()
# 关闭数据库连接
db.close()
2. 如何优雅地将dat,txt 或者excel 文件导入python
用excel写一条公式,类似于:
=array('filter'=>"&A&")
然后按住右下角的十字架,一直往下拖,一堆数组就出来了,然后用php写进去就好了!
3. 有哪些方法可以在excel中直接使用python脚本
先安装python2.7,然后配置环境变量,保证python在该环境中,答芦打开开始菜单,找到计算机,然后右键单击它,选择【属性】
找到高级系统设置
找到环境变量,点击该按钮,打开环境变量设置窗口
找到Path系统变量,然后点击【编辑】
在慧洞这里,确保python的安装目录在,没有的话,添加进去
双击即可安装,安装过程就是一路点清碧带击’下一步,不过有一步需要注意,在这里不要勾选python,如果通过这种方式安装python,原先安装的python就无法使用了
最后安装完成,打开Excel就可以看到datanitro
4. 如何优雅地将dat,txt 或者excel 文件导入python
我不知道 dat 是什么文件。
但是薯中袭对于后来者来说:数兄
txt: 你可以直接使用 open(filename,'r') 来将其中的文本导入Python
excel: 需要使用一个第三培拍方模块, 叫做 openpyxl , 可以很优雅的导入其中数据。
5. 如何把excel导入python并读取内容
读取excel的库很多pd库、xlrd库都可以。
例如
import xlrdfrom xlrd import xldate_as_tupleimport datetime'''xlrd中单元格的数据类型数字一律按浮点型输出,日期输出成一串小数,布尔型输出0或1,所以我们必须在程序中做判断处理转换成我们想要的数据类型0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error'''class ExcelData(): # 初始化方法 def __init__(self, data_path, sheetname): #定义一个属性接收文件路径 self.data_path = data_path # 定义一个属性接收工作表名称 self.sheetname = sheetname # 使用xlrd模块打开excel表读取数据 self.data = xlrd.open_workbook(self.data_path) # 根据工作表的名称获取工作表中的内容(方式①) self.table = self.data.sheet_by_name(self.sheetname) # 根据工作表的索引获取工作表的内容(方式②) # self.table = self.data.sheet_by_name(0) # 获取第一行所有内容,如果括号中1就是第二行,这点跟列表索引类似 self.keys = self.table.row_values(0) # 获取工作表的有效行数 self.rowNum = self.table.nrows # 获取工作表的有效列数 self.colNum = self.table.ncols # 定义一个读取excel表的方法 def readExcel(self): # 定义一个空列表 datas = [] for i in range(1, self.rowNum): # 定义一个空字典 sheet_data = {} for j in range(self.colNum): # 获取单元格数据类型 c_type = self.table.cell(i,j).ctype # 获取单元格数据 c_cell = self.table.cell_value(i, j) if c_type == 2 and c_cell % 1 == 0: # 如果是整形 c_cell = int(c_cell) elif c_type == 3: # 转成datetime对象 date = datetime.datetime(*xldate_as_tuple(c_cell,0)) c_cell = date.strftime('%Y/%d/%m %H:%M:%S') elif c_type == 4: c_cell = True if c_cell == 1 else False sheet_data[self.keys[j]] = c_cell # 循环每一个有效的单元格,将字段与值对应存储到字典中 # 字典的key就是excel表中每列第一行的字段 # sheet_data[self.keys[j]] = self.table.row_values(i)[j] # 再将字典追加到列表中 datas.append(sheet_data) # 返回从excel中获取到的数据:以列表存字典的形式返回 return datasif __name__ == "__main__": data_path = "ttt.xlsx" sheetname = "Sheet1" get_data = ExcelData(data_path, sheetname) datas = get_data.readExcel() print(datas)
6. 如何将excel导入python
将txt
文件导入python代码:
import
pandas
as
pd
path='1.txt'
data=pd.read_csv(path,sep='\t')
想要”优雅“导入,建议使用pandas,matplotlib:
import
pandas
as
pd
data
=
pd.read_csv("aaa.csv")
data.columns
#查看表格有旅埋哪些列,可以看到有x,
y,
z列
data['x']
#查看x列
data['y']
#查看y列
data['z']
#查看z列
import
matplotlib.pyplot
as
plt
plt.bar(data['x'],
data['y'])
#画柱状图
plt.title('example')
#设置瞎好标题
plt.xlabel('x')
#横坐标加说明文字'x'
plt.ylabel('y')
#纵坐标加说明文字'y'
plt.show()
#显示磨镇铅图形
7. 一个Excel表格(53×56)全是数字构成,如何将其作为一个矩阵导入到Python中
还是先把Excel中的输入读取到程序,读到程序中了,你想干嘛就干嘛
前言
在很多应用场景中,程序都需要读取excel的配置。
比如,在游戏中,数值策划用excel 建好了数值表,我们要导入到游戏中。
概述
这里我使用了 pyexcel-xls 这个东西。我个人觉得这个东西导出的数据结构,结构可读性很强,数据结构如下:
整个excel文件,转化为一个字典结构磨桐颂:每个key就是一个子表(Sheet)
每个子表(Sheet),转化为一个二维数组:分别为行和列。
注意,本文对应的版本更新为 pyexcel-xls 0.2.3。
安装
pypi
■ 方法一:
可以直接用pip安装
pip install pyexcel-xls
■ 方法二:
下载安装包手动安装。
先安装两个轮卜依赖包:
xlrd 和 pyexcel-io
然后再安装 pyexcel-xls
使用
一、读excel数据 (xls, xlsx)
1,先建立一个目标excel表,这里为了做演示,简单建立一个 read_test.xlsx 文件:
里面的数据(3行,4列):
2,写python 脚本,读这个文件:
[python] view plain
#! /usr/bin/env python
#coding=utf-8
# pyexcel_xls 以 OrderedDict 结构处理数据
from collections import OrderedDict
from pyexcel_xls import get_data
from pyexcel_xls import save_data
def read_xls_file():
xls_data = get_data(r"D:\read_test.xlsx")
print "Get data type:", type(xls_data)
for sheet_n in xls_data.keys():
print sheet_n, ":", xls_data[sheet_n]
if __name__ == '__main__':
read_xls_file()
看一下输出的打印信息:
可以看到:
整个excel文件,转化为一个OrderedDict (有序字典)结构:每个key就是一个子表(Sheet)。
每个子表(Sheet),转化为一个列表结构:很像二维数组,第一层列表为行(Row),行的下标为列(Column),对瞎郑应的值为单元格的值。编码为 unicode
简单,易用,读出数据后,非常适合做二次处理!
■ 注意,excel文件名(就是那个xls或者xlsx文件),尽量不要用中文,如果您要使用中文,请转化为unicode编码,如:
xls_data = get_data(unicode(r"D:\试试.xlsx", "utf-8"))
二、写excel数据 (xls)
根据上文,写也比较简单,不做过多解释。
[python] view plain
#! /usr/bin/env python
#coding=utf-8
# pyexcel_xls 以 OrderedDict 结构处理数据
from collections import OrderedDict
from pyexcel_xls import get_data
from pyexcel_xls import save_data
def read_xls_file():
xls_data = get_data(unicode(r"D:\试试.xlsx", "utf-8"))
print "Get data type:", type(xls_data)
for sheet_n in xls_data.keys():
print sheet_n, ":", xls_data[sheet_n]
return xls_data
# 写Excel数据, xls格式
def save_xls_file():
data = OrderedDict()
# sheet表的数据
sheet_1 = []
row_1_data = [u"ID", u"昵称", u"等级"] # 每一行的数据
row_2_data = [4, 5, 6]
# 逐条添加数据
sheet_1.append(row_1_data)
sheet_1.append(row_2_data)
# 添加sheet表
data.update({u"这是XX表": sheet_1})
# 保存成xls文件
save_data("D:\write_test.xls", data)
if __name__ == '__main__':
save_xls_file()
看一下写出的xls文件:
好,数据读写完成!
8. python 对Excel表格文件的类型自由转换
如上所示,FileFormat为51,表高升并示文件格式为xlsx。
下面还列出了需要常用的excel文件格式,供大家参考:
此外,如果还需要转其他文件格式,可参考微软官戚迹笑庆网提供的文件格式