python3讀取csv文件任意行列代碼實(shí)例
這篇文章主要介紹了python3讀取csv文件任意行列代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
讀取每一行
reader = csv.reader(f) 此時(shí)reader返回的值是csv文件中每行的列表,將每行讀取的值作為列表返回
#讀取每一行
filename='D:\\file_information1.csv'
import csv
with open(filename,newline = '',encoding = 'utf-8') as f: #參數(shù)encoding = 'utf-8'防止出現(xiàn)亂碼
reader = csv.reader(f) #使用csv的reader()方法,創(chuàng)建一個(gè)reader對(duì)象 csv.reader()讀取結(jié)果是列表
for row in reader: #遍歷reader對(duì)象的每一行
print(row)
如何往csv格式文件寫入數(shù)據(jù)
1.write()函數(shù)寫入文本文件的也是字符串類型。
2.在'w'和'a'模式下,如果你打開的文件不存在,那么open()函數(shù)會(huì)自動(dòng)幫你創(chuàng)建一個(gè)
3.'w'寫入模式會(huì)給你暴力清空掉文件,然后再給你寫入。如果你只想增加?xùn)|西,而不想完全覆蓋掉原文件的話,就要使用'a'模式,表示append,你學(xué)過,它是追加的意思。
file1 = open('D:\\new\\abc.txt','a',encoding='utf-8')
file1.write('張無忌\n')
file1.write('宋青書\n')
file1.close()
enumerate()
enumerate() 函數(shù)用于將一個(gè)可遍歷的數(shù)據(jù)對(duì)象(如列表、元組或字符串)組合為一個(gè)索引序列,同時(shí)列出數(shù)據(jù)和數(shù)據(jù)下標(biāo) ,一般用在 for 循環(huán)當(dāng)
以下是 enumerate() 方法的語法: enumerate(sequence, [start=0])
- sequence -- 一個(gè)序列、迭代器或其他支持迭代對(duì)象。
- start -- 下標(biāo)起始位置。
返回 enumerate(枚舉) 對(duì)象
seasons = ['Spring', 'Summer', 'Fall', 'Winter'] print(list(enumerate(seasons))) # [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')] print(list(enumerate(seasons, start=1)) ) # [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
# 普通for循環(huán): i = 0 seq = ['one', 'two', 'three'] for element in seq: print( i, seq[i]) i +=1 ''' one two three ''' # for 循環(huán)使用 enumerate seq1 = ['one', 'two', '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")#二進(jìn)制格式讀文件
i = 0
while True:
print(i)
line = f.readline()
if not line:
break
else:
try:
# print(line)
# print(line.decode('utf8'))
line.decode('utf8')
#為了暴露出錯(cuò)誤,最好此處不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,'r',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,'r',encoding='utf-8')as f:
read=f.readlines()
for index,info in enumerate(read):
if index <10: #這里為索引,是 int 整形
print(index,info)
讀取任意行,可根據(jù)index索引
import csv
filename='D:\\file_information1.csv'
with open(filename,'r',encoding='utf-8')as f:
read=f.readlines()
for index,info in enumerate(read):
print(index) #自己根據(jù)index的數(shù)字判斷
讀取第一和第二列
import csv
filename='D:\\file_information1.csv'
with open(filename,'r',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,'r',encoding='utf-8')as f:
read=csv.reader(f)
for index,info in enumerate(read):
if index!=0: #這里加判斷
print(info[:2])
讀取最后兩列
import csv
filename='D:\\file_information1.csv'
with open(filename,'r',encoding='utf-8')as f:
read=csv.reader(f)
for index,info in enumerate(read):
print(info[-2:])
讀第一行的第三列
filename='D:\\file_information1.csv'
with open(filename,'r',encoding='utf-8')as f:
read=csv.reader(f)
for index,info in enumerate(read):
if index==0:
print(info[2:3])
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python+Kepler.gl輕松制作酷炫路徑動(dòng)畫的實(shí)現(xiàn)示例
這篇文章主要介紹了Python+Kepler.gl輕松制作酷炫路徑動(dòng)畫的實(shí),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧現(xiàn)示例2020-06-06
TensorFlow實(shí)現(xiàn)模型評(píng)估
這篇文章主要為大家詳細(xì)介紹了TensorFlow實(shí)現(xiàn)模型評(píng)估,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09
使用BeautifulSoup4解析XML的方法小結(jié)
這篇文章主要介紹了使用BeautifulSoup4解析XML的方法小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
Python實(shí)現(xiàn)隱馬爾可夫模型的前向后向算法的示例代碼
這篇文章主要介紹了Python實(shí)現(xiàn)隱馬爾可夫模型的前向后向算法,本文通過實(shí)例代碼給大家講解的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12
Python中聲明只包含一個(gè)元素的元組數(shù)據(jù)方法
這篇文章主要介紹了Python中聲明只包含一個(gè)元素的元組數(shù)據(jù)方法,本文是實(shí)際經(jīng)驗(yàn)總結(jié)而來,沒有碰到這個(gè)需要可能不會(huì)注意到這個(gè)問題,需要的朋友可以參考下2014-08-08
解決Python正則表達(dá)式匹配反斜杠''''\''''問題
這篇文章主要介紹了Python正則表達(dá)式匹配反斜杠'\'問題 ,很多朋友在使用python 正則式的過程中,經(jīng)常被這個(gè)問題困擾,今天小編通過代碼給大家詳細(xì)介紹,需要的朋友可以參考下2019-07-07
python 劃分?jǐn)?shù)據(jù)集為訓(xùn)練集和測(cè)試集的方法
今天小編就為大家分享一篇python 劃分?jǐn)?shù)據(jù)集為訓(xùn)練集和測(cè)試集的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12
python3 map函數(shù)和filter函數(shù)詳解
這篇文章主要介紹了python3 map函數(shù)和filter函數(shù)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
python第三方包安裝路徑site-packages下.libs作用詳解
這篇文章主要為大家介紹了python?第三方包安裝路徑?site-packages?下面的以?.libs?結(jié)尾的路徑作用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
python?random模塊常用函數(shù)基礎(chǔ)教程
這篇文章主要為大家介紹了python?random模塊常用函數(shù)基礎(chǔ)教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06

