python3讀取csv檔案任意行列程式碼例項
阿新 • • 發佈:2020-01-14
這篇文章主要介紹了python3讀取csv檔案任意行列程式碼例項,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
讀取每一行
reader = csv.reader(f) 此時reader返回的值是csv檔案中每行的列表,將每行讀取的值作為列表返回
#讀取每一行 filename='D:\\file_information1.csv' import csv with open(filename,newline = '',encoding = 'utf-8') as f: #引數encoding = 'utf-8'防止出現亂碼 reader = csv.reader(f) #使用csv的reader()方法,建立一個reader物件 csv.reader()讀取結果是列表 for row in reader: #遍歷reader物件的每一行 print(row)
如何往csv格式檔案寫入資料
1.write()函式寫入文字檔案的也是字串型別。
2.在'w'和'a'模式下,如果你開啟的檔案不存在,那麼open()函式會自動幫你建立一個
3.'w'寫入模式會給你暴力清空掉檔案,然後再給你寫入。如果你只想增加東西,而不想完全覆蓋掉原檔案的話,就要使用'a'模式,表示append,你學過,它是追加的意思。
file1 = open('D:\\new\\abc.txt','a',encoding='utf-8') file1.write('張無忌\n') file1.write('宋青書\n') file1.close()
enumerate()
enumerate() 函式用於將一個可遍歷的資料物件(如列表、元組或字串)組合為一個索引序列,同時列出資料和資料下標 ,一般用在 for 迴圈當
以下是 enumerate() 方法的語法: enumerate(sequence,[start=0])
- sequence -- 一個序列、迭代器或其他支援迭代物件。
- start -- 下標起始位置。
返回 enumerate(列舉) 物件
seasons = ['Spring','Summer','Fall','Winter'] print(list(enumerate(seasons))) # [(0,'Spring'),(1,'Summer'),(2,'Fall'),(3,'Winter')] print(list(enumerate(seasons,start=1)) ) # [(1,(4,'Winter')]
# 普通for迴圈: i = 0 seq = ['one','two','three'] for element in seq: print( i,seq[i]) i +=1 ''' one two three ''' # for 迴圈使用 enumerate seq1 = ['one','three'] for j,element in enumerate(seq1): print (j,element) ''' one two three '''
獲取檔案的編碼方式
import chardet def get_file_code(file_path): with open(file_path,'rb') as f: data = f.read() print('獲取到的CSV檔案編碼為:%s' % (chardet.detect(data)['encoding'])) return chardet.detect(data)['encoding'] file_path = r'D:\\file_information1.csv' get_file_code(file_path)
判斷檔案的編碼方式
f = open("D:\\file_information1.csv","rb")#二進位制格式讀檔案 i = 0 while True: print(i) line = f.readline() if not line: break else: try: # print(line) # print(line.decode('utf8')) line.decode('utf8') #為了暴露出錯誤,最好此處不print except: print(str(line)) i += 1
讀取首行
filename='D:\\file_information1.csv' with open(filename,'r',encoding='utf-8')as f: #自行先判斷檔案的編碼方式 read=f.readlines() for index,info in enumerate(read): if index ==0: #這裡判斷 #這裡輸出的是字串型別 print(info)
讀取首行之外的所有行
filename='D:\\file_information1.csv' with open(filename,encoding='utf-8')as f: read=f.readlines() for index,info in enumerate(read): if index !=0: #這裡判斷 print(info)
讀取前10行
filename='D:\\file_information1.csv' with open(filename,info in enumerate(read): if index <10: #這裡為索引,是 int 整形 print(index,info)
讀取任意行,可根據index索引
import csv filename='D:\\file_information1.csv' with open(filename,info in enumerate(read): print(index) #自己根據index的數字判斷
讀取第一和第二列
import csv filename='D:\\file_information1.csv' with open(filename,encoding='utf-8')as f: read=csv.reader(f) for index,info in enumerate(read): #這裡輸出的是列表型別 print(info[:2]) #[:2]代表的是讀取第0列和第1列 ,第2列不包括
讀取除首行之外的第一,第二列
import csv filename='D:\\file_information1.csv' with open(filename,info in enumerate(read): if index!=0: #這裡加判斷 print(info[:2])
讀取最後兩列
import csv filename='D:\\file_information1.csv' with open(filename,info in enumerate(read): print(info[-2:])
讀第一行的第三列
filename='D:\\file_information1.csv' with open(filename,info in enumerate(read): if index==0: print(info[2:3])
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。