有時對於爬蟲得到的資料,需要對其進行整理,一是為了格式統一,二是用excel**也可以開啟。再就是把得到的資料放入資料庫都是需要的。
首先來看導成csv:
我認為最重要的一點是,如何把文字資料取出來放入類似二維陣列的字串組來儲存。關鍵就在於如何取。
可以觀察到這些資料以此的順序,因此:
with open('info.txt','r') as file:
while true:
line=file.readline()
if line=='':
break
if len(line.split('\r')[0])==1:
continue
print len(line.split('\n')[0])
# /r 和 /n 的區別?
count=0
for i in info:
print "測試",i
count=count+1
print "數量",count
data=[("1","2","3","4")]
for i in range(0,count,4):
str=(info[i],info[i+1],info[i+2],info[i+3])
定義乙個info=的列表,先來以此存放這些資料,用了split函式來從換行符進行分割。看到這些資料之間有兩個空行沒?在從print測試後發現這些行除去行符的len都為1,所以用if來判斷。然後看到data,這是乙個字串集的列表,每次新增的為乙個字串集,()專業術語:元組。
with open('infos.csv','w') as cwf:關於csv,請看官方文件。這樣,就可以實現導成csv格式:spamwriter=csv.writer(cwf,dialect='excel')
for i in range((count/4)+1):
spamwriter.writerow(data[i])
如果用excel開啟,可能有出現亂碼等問題,網上說是把csv用記事本開啟,另存為,編碼改為ansi,再用excel開啟就無亂碼了。
接著,把以上資料放入資料庫,我這裡使用的是postgres資料庫,圖形介面操作用的pgadmin
import psycopg2
conn = psycopg2.connect(database="hecarim", user="******", password="******xx", host="192.168.***.***",
port="5432")
cur=conn.cursor()
cur.execute("insert into workinfo (days,times,company,palce) values (%s,%s,%s,%s)",(info[i],info[i+1],info[i+2],info[i+3]))
conn.commit()
conn.close()
python在這裡面其實進行資料庫的連線和使用還是蠻簡單的,匯入psycopg2,然後就connect,最後,execute來進行功能的實現。
這種方式是簡單易懂的,資料庫表是在pgadmin裡面建立的。
所以我還想進一步會寫的是,在python裡面建立表,然後用
info=infomodel(***=***,yyy=yyy)
info.add()
上面這種方式來新增到資料庫。
CSV檔案匯入導mysql資料庫
基本語法 load data low priority local infile file name txt replace ignore into table tbl name character set gbk fields terminated by t optionally enclosed...
excel表資料存入資料庫
參考 實現 public string add httpservletrequest request,httpservletresponse response else if file.matches i xlsx sheet sheet workbook.getsheetat 0 sheet 從0...
資料庫互導
1 sqlserver與access互導 方法一 用sql語句 匯出到access insert into openrowset microsoft.jet.oledb.4.0 x a.mdb admin a表 select from 資料庫名.b表 匯入access insert into b表 ...