目前,python3(以下簡稱python)至少有三種辦法讀取csv格式檔案,分別是:
1.csv模組python中有乙個讀寫csv檔案的包,直接import csv即可。利用這個python包可以很方便對csv檔案進行操作,一些簡單的用法如下。2.numpy裡面的loadtxt方法
3.pandas裡面的read_csv方法
1. 讀檔案
csv_reader = csv.reader(open('data.file', encoding='utf-8'))例如有如下的檔案for row in csv_reader:
print(row)
輸出結果如下
['0.093700','0.139771','0.062774','0.007698']
['-0.022711','-0.050504','-0.035691','-0.065434']
['-0.090407','0.021198','0.208712','0.102752']
['-0.085235','0.009540','-0.013228','0.094063']
可見csv_reader把每一行資料轉化成了乙個list,list中每個元素是乙個字串。
2. 寫檔案
讀檔案時,我們把csv檔案讀入列表中,寫檔案時會把列表中的元素寫入到csv檔案中。
list = ['1', '2','3','4']可能遇到的問題:直接使用這種寫法會導致檔案每一行後面會多乙個空行。解決辦法如下:out = open(outfile, 'w')
csv_writer = csv.writer(out)
csv_writer.writerow(list)
out = open(outfile, 'w', newline='')問題:想讀取每列的資料,畫出折線圖,沒想到總是報錯,後來才意識到csv.reader函式讀取的list是字元型,所以進行轉換型別。csv_writer = csv.writer(out, dialect='excel')
csv_writer.writerow(list)
python中map()函式接收兩個引數,乙個是函式,乙個是序列,map將傳入的函式依次作用到序列的每個元素,並把結果作為新的list返回。
python裡面直接轉一維的list
問題 1:
list=['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
轉化為:list=[0, 1 ,2, 3, 4, 5, 6, 7, 8, 9]
**如下:
1 list_to_float = list(map(lambda x:float(x), list))
問題2:(對於二維陣列,需要加個迴圈,變成一維陣列)
list=[['0', '1', '2'], ['3', '4', '5'], ['6', '7', '8']]
轉化為:list=[[0, 1 ,2], [3, 4, 5], [6, 7, 8]]
**如下:
list_to_float =
for each in list:
each_line=list(map(lambda x: float(x), each))
這樣輸出才不會報錯:
with open(filename) as f: #開啟檔案檔案並將內容儲存在reader中csv_data=csv.reader(f) #讀取並將內容儲存在reader中
list_str = [row[0] for row in csv_data] #讀取每列的資料
list_float = list(map(lambda x:float(x), list_str)) #將list中的字元轉為數字
print(list_float)
python讀取csv檔案
csv格式資料 import csvcsv資料儲存,包括三種方式 直接寫入csv檔案 寫入 一條或者多條資料 import csv header line1 line2 line3 rows 1,2,3 4,5,6 7,8,9 with open test.csv w as f file csv.w...
python讀取CSV檔案
reader讀取csv檔案,再用for迴圈遍歷 import csv with open customer.csv as f f csv csv.reader f for row in f csv print row 0 執行結果 id test 932467 1111 932468 2 93246...
python讀取csv檔案
在python裡面,讀取或寫入csv檔案時,首先要import csv這個庫,然後利用這個庫提供的方法進行對檔案的讀寫。0x01 獲取每一行 讀取csv檔案,用的是csv.reader 這個方法。返回結果是乙個 csv.reader的物件,我們可以對這個物件進行遍歷,輸出每一行,某一行,或某一列。如...