幾天沒寫了,但是還是在不斷的學習。今天又是周五了,來記錄一波。今天的內容主要是python對csv檔案進行讀寫。
import csv
初始
**名稱
最新價漲幅%
總手金額
換手%市盈率
市淨率1
000063
中興通訊
50.79
-1.23
130萬
65.3億
3.73
42.56
5.97
5002475
立訊精密
42.96
-0.62
84.7萬
35.9億
1.59
59.69
11.21
6002714
牧原股份
122.6
0.66
23.8萬
28.7億
2.04
44.2
11.91
7600570
恆生電子
91.78
0.67
23.5萬
21.0億
2.92
68.79
19.35
8002194
武漢凡谷
29.38
-3.99
45.8萬
13.7億
12.32
105.75
8.83
9002100
天康生物
11.97
-2.13
46.3萬
5.45億
4.35
31.71
2.79
10603719
良品鋪子
65.09
10.01
18.9萬
12.1億
46.18
62.26
14.42
11600703
三安光電
24.29
4.11
176萬
41.6億
4.31
64.47
4.59
12000002
萬 科a
29.45
-1.67
73.3萬
21.2億
0.75
13.69
1.99
以讀的方式開啟檔案,這裡注意最好後面加上編碼方式,encoding = 'utf-8',否則如果檔案**現中文字元,讀取時會報錯或者出現亂碼。
with open('stock.csv', 'r', encoding='utf-8') as fp:
stocks = csv.reader(fp)
然後利用for迴圈對所有資料進行提取,這裡只提取前面第2列和第三列的資料,即名稱和最新價,以字典格式輸出。
for stock in stocks:
# print(stock)
name = stock[2]
price = stock[3]
print()
輸出結果:
在輸出結果中可以看到,結果包含了檔案的首行,但是在使用資料的過程中往往不需要用到首行資料,我們需要將首行資料去掉。可在進行迴圈前執行 next(stocks) **,達到去掉首行的效果,即
with open('stock.csv', 'r', encoding='utf-8') as fp:
stocks = csv.reader(fp)
next(stocks) # 從下一行開始獲取,這行可以去掉標題行
for stock in stocks:
# print(stock)
name = stock[2]
price = stock[3]
print()
**的意思就是從下一行開始獲取,可以略過標題行。
以寫的方式建立並開啟 csv 檔案,
with open('person.csv', 'w', encoding='utf-8', newline='') as fp:
writer = csv.writer(fp)
再分別寫入標題行,和資料。其中 writerrow 每次寫入一行資料;writerrows 可寫入多行資料
headers = ['name', 'age', 'height']
values =
with open('person.csv', 'w', encoding='utf-8',newline='') as fp: # newline預設為"\n",即換行符
writer = csv.writer(fp)
writer.writerow(headers)
writer.writerows(values) # 一次性寫入多行
推薦閱讀:
python 學習筆記(一)——requests 庫,網路爬蟲
python 學習筆記(二)——beautifulsoup 庫,網路爬蟲
MyBatis三(讀寫操作)
在mybatis中編寫insert語句時使用 insert 如下 select last insert id as id 這裡,parametetype可以根據需要將值作為string,int,float,double等任何類物件。如果資料庫表使用identity,auto increment或se...
mysql讀寫分離(三) 讀寫分離實現
現在的mysql讀寫分離方案有很多,在這裡筆者列舉出幾種自己使用過的方案 1.spring實現route不同的資料來源,來達到讀寫分離的目的。主要原理是根據service或者dao方法做切面,然後根據規範方法名字首來切換不同的資料來源,實現讀寫分離,好處,速度快,支援事務,但是缺點,是不好管理 2....
python讀csv python讀寫csv檔案
1匯入相關包 importosimportreimportcsv 1讀取csv檔案 def read csv filename,header false res with open filename as f f csv csv.reader f if header 預設讀取頭部檔案 headers...