⑴ python如何讀取CSV信息存入資料庫
classDBI(object):
"""databaseinterface"""
def__init__(self,conn):
"""keepconnection"""
self._conn=conn
defstore(self,sql,data):
""""""
curr=self._conn.cursor()
curr.executemany(sql,data)
self._conn.commit()
curr.close()
defexecute(self,sql,*args,**kwgs):
"""executesqlondatabase"""
curr=self._conn.cursor()
curr.execute(sql,*args,**kwgs)
self._conn.commit()
curr.close()
defipager(serial,pagesize):
"""makeserialpagebypage"""
buff=[]
forrowinserial:
buff.append(row)
iflen(buff)>=pagesize:
send,buff,=buff,[]
yieldsend
iflen(buff):
yieldbuff
deftester():
importcsv
importsqlite3
dbi=DBI(sqlite3.connect(database=":memory:"))
dbi.execute("createtabletb_tester(id,key,val,tm)")
sql="insertintotb_testervalues(?,?,?,?)"
withopen(todofile,'rb')ashandle:
forrowsinipager(csv.reader(handle),512):
dbi.store(sql,rows)
csv模塊是python處理csv類文件的強大工具; 參考 https://docs.python.org/2/library/csv.html
ipager將大數據流按指定大小分頁, 以節省資源並提升效率;
DBI提供統一的資料庫介面操作方法;
⑵ 如何用python讀取csv文件,並把csv文件的第3,4列形成一個列表在python 中顯示。如圖中的兩列數據
import pandas as pd
df=pd.read(r'e:/aaaaa.csv')
df.iloc[:,2:4].values.tolist()
⑶ csv文件怎麼打開 使用Python讀取和寫入CSV文件
csv文件本質上是一個文本文件,具體的讀取和寫入方法有兩種:
直接對csv文件進行文件讀寫操作,每一行是一條記錄,按行讀取即可,簡單代碼如下:
with open("XXX.csv","wr") as f:
f.readline()
f.write()
2.使用第三方庫中的csv文件讀寫函數(本質上還是使用python的文件讀寫方法),如科學計算包pandas包中就有read_csv() to_csv()等函數,其他的一些第三方包里也有,可以自行查詢。
兩種方法各有優劣,第一種方法的優點就是可控性強,但是代碼相對較多,對於python2編碼處理很麻煩;第二種方法的優點是代碼量小,調用方便,處理編碼問題相對容易(在函數中加一個encoding參數即可),但是代碼內部比較復雜,可控性較差
⑷ python保存csv文件全為一列,值帶引號,分隔符為分號,該怎麼做,或者csv的格式怎麼轉換
笨方法,替換,用";"替換, 再用換行/n替換"/n 最後首尾加" 就好了
⑸ python中怎麼處理csv文件
什麼是CSV
就是內容用逗號隔開,後綴是『.csv』的文件。它可以被任何一個文本編輯器打開。如果用excel打開,它又可以是這樣的:
END
讀CSV
典型的可處理的csv文件,通常含有表頭,也就是每列的列名。這樣一來,每一行的內容就可以被當作是以表頭為key的字典。於是可以使用csv定義的類:
class csv.DictReader(csvfile, fieldnames=None, restkey=None, restval=None, dialect='excel', *args, **kwds)
下面是官方的例子(Python 3)。我們看到,對於csv文件的內容,我們可以通過相應的tag,也就是字典的key來讀取。
在實際使用過程中,為了分離代碼和方便閱讀,可以先把讀取的內容轉存到列表,隨後再根據各個key進行分開處理(針對多列的情況)。
END
寫CSV
同樣的,寫入的也是列表。使用的類:
class csv.DictWriter(csvfile, fieldnames, restval='', extrasaction='raise', dialect='excel', *args, **kwds)
官方例子:我們看到,有專門的函數來寫入表頭,沒有表頭數據是無法對應的。需要注意的是,對於下列語句,『w』需要修改為『wb』,否則每次寫入會有多餘空行
with open('names.csv', 'wb') as csvfile
⑹ .csv是什麼文件格式,什麼軟體可以打開
.csv是逗號分隔值文件格式,可以用電腦自帶的記事本或excel打開。
csv其文件以純文本形式存儲表格數據(數字和文本)。純文本意味著該文件是一個字元序列,不含必須像二進制數字那樣被解讀的數據。C
SV文件由任意數目的記錄組成,記錄間以某種換行符分隔;每條記錄由欄位組成,欄位間的分隔符是其它字元或字元串,最常見的是逗號或製表符。
通常,所有記錄都有完全相同的欄位序列。通常都是純文本文件。建議使用WORDPAD或是記事本來開啟,再則先另存新檔後用EXCEL開啟,也是方法之一。
(6)csv分頁顯示Python擴展閱讀
CSV文件最廣泛的應用是在程序之間轉移表格數據,而這些程序本身是在不兼容的格式上進行操作的(往往是私有的和/或無規范的格式)。因為大量程序都支持某種CSV變體,至少是作為一種可選擇的輸入/輸出格式。
例如,一個用戶可能需要交換信息,從一個以私有格式存儲數據的資料庫程序,到一個數據格式完全不同的電子表格。最可能的情況是,該資料庫程序可以導出數據為「CSV」,然後被導出的CSV文件可以被電子表格程序導入。
⑺ 如何用python 讀寫 csv
csv文件就是按逗號分隔的文本, 可以用python自帶的讀取文本的方式, 不過我推薦用pandas包, 讀寫都很方便
#coding=utf-8
#傳統方式
#讀
f1=open('1.csv','r').readlines()
result=map(lambdax:x.strip().split(','),f)
#寫
f2=open('1.csv','w')
f2.write('whatyouwanttowrite')
#pandas方法
importpandasaspd
#讀
result=pd.read_csv('1.csv')#result被轉化為DataFrame對象
#寫
#寫的時候可以操作result這個DataFrame對象,類似excel的表格,十分方便
result[0,0]=1
result.to_csv('2.csv')#將修改後的DataFrame保存為一個新的csv或者你想替換1.csv也可以
粗略介紹了一點, 如果有不懂的, 請追問.
⑻ 急!!如何用Python編程來處理csv中的數據請高手幫忙,謝謝!
csv.reader
csv.writer
⑼ 如何查看python的csv數據
# -*- coding:utf-8 -*-
import csv
def readbyday(csvfile,day):
csvcontent = csv.reader(file(csvfile, 'rb'))
res=[]
for line in csvcontent:
if line[0].find(day)<>-1:
res.append(line)
return res
def calcbyday(csvfile,day,flag):
#求某列數據的和及平均值
total=0
avg=0
res=readbyday(csvfile, day)
for i in res:
print i
total=total+int(i[flag])
avg=total/len(res)
return total,avg
date='2014-7-1'
flag=1 #falg=1/2/3 收入金額/支出金額/余額金額
total,avg=calcbyday(u'7月_1.csv',date,1)
print '%s 收入金額總數:%d\t平均:%d'%(date,total,avg)
輸出:
['2014-7-1 0:01', '100', '80', '10000']
['2014-7-1 0:01', '101', '81', '10001']
['2014-7-1 0:08', '102', '82', '10002']
2014-7-1 收入金額總數:303 平均:101
⑽ python中怎麼把csv文件讀取的數據顯示在網頁上
python的標准庫csv庫主要是面向本地文件,就是說你的CSV文件得存儲在你的電腦上。當進行網路數據採集的時候,很多文件都是在線的。不過有一些辦法可以解決這個問題:
1,手動把CSV文件下載到本機,然後用Python定位文件位置;
2,寫Python程序下載文件,讀取之後再把源文件刪除;
3,從網上直接把文件讀成一個字元串,然後轉換成一個StringIO對象,使它具有文件的屬性。
雖然前兩個方法也可以用,但是既然你可以輕易地把CSV文件保存在內存里,就不要再下載到本地佔硬碟空間了。直接把文件讀成字元串,然後封裝成StringIO對象,讓Python把它當做文件來處理,就不需要先保存文件了。下面的程序就是從網上獲取一個CSV文件,然後把每一行都列印到命令行里:
[python]view plain
fromioimportStringIO
importcsv
data=urlopen('httles/MontyPythonAlbums.csv').read().decode('ascii','ignore')
dataFile=StringIO(data)
csvReader=csv.reader(dataFile)
forrowincsvReader:
printrow