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文件格式,供大家參考:
此外,如果還需要轉其他文件格式,可參考微軟官戚跡笑慶網提供的文件格式