python3读取csv文件任意行列代码实例
这篇文章主要介绍了python3读取csv文件任意行列代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
读取每一行
reader=csv.reader(f)此时reader返回的值是csv文件中每行的列表,将每行读取的值作为列表返回
#读取每一行 filename='D:\\file_information1.csv' importcsv withopen(filename,newline='',encoding='utf-8')asf:#参数encoding='utf-8'防止出现乱码 reader=csv.reader(f)#使用csv的reader()方法,创建一个reader对象csv.reader()读取结果是列表 forrowinreader:#遍历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,'Spring'),(2,'Summer'),(3,'Fall'),(4,'Winter')]
#普通for循环: i=0 seq=['one','two','three'] forelementinseq: print(i,seq[i]) i+=1 ''' one two three ''' #for循环使用enumerate seq1=['one','two','three'] forj,elementinenumerate(seq1): print(j,element) ''' one two three '''
获取文件的编码方式
importchardet defget_file_code(file_path): withopen(file_path,'rb')asf: data=f.read() print('获取到的CSV文件编码为:%s'%(chardet.detect(data)['encoding'])) returnchardet.detect(data)['encoding'] file_path=r'D:\\file_information1.csv' get_file_code(file_path)
判断文件的编码方式
f=open("D:\\file_information1.csv","rb")#二进制格式读文件 i=0 whileTrue: print(i) line=f.readline() ifnotline: break else: try: #print(line) #print(line.decode('utf8')) line.decode('utf8') #为了暴露出错误,最好此处不print except: print(str(line)) i+=1
读取首行
filename='D:\\file_information1.csv' withopen(filename,'r',encoding='utf-8')asf:#自行先判断文件的编码方式 read=f.readlines() forindex,infoinenumerate(read): ifindex==0:#这里判断 #这里输出的是字符串类型 print(info)
读取首行之外的所有行
filename='D:\\file_information1.csv' withopen(filename,'r',encoding='utf-8')asf: read=f.readlines() forindex,infoinenumerate(read): ifindex!=0:#这里判断 print(info)
读取前10行
filename='D:\\file_information1.csv' withopen(filename,'r',encoding='utf-8')asf: read=f.readlines() forindex,infoinenumerate(read): ifindex<10:#这里为索引,是int整形 print(index,info)
读取任意行,可根据index索引
importcsv filename='D:\\file_information1.csv' withopen(filename,'r',encoding='utf-8')asf: read=f.readlines() forindex,infoinenumerate(read): print(index)#自己根据index的数字判断
读取第一和第二列
importcsv filename='D:\\file_information1.csv' withopen(filename,'r',encoding='utf-8')asf: read=csv.reader(f) forindex,infoinenumerate(read): #这里输出的是列表类型 print(info[:2])#[:2]代表的是读取第0列和第1列,第2列不包括
读取除首行之外的第一,第二列
importcsv filename='D:\\file_information1.csv' withopen(filename,'r',encoding='utf-8')asf: read=csv.reader(f) forindex,infoinenumerate(read): ifindex!=0:#这里加判断 print(info[:2])
读取最后两列
importcsv filename='D:\\file_information1.csv' withopen(filename,'r',encoding='utf-8')asf: read=csv.reader(f) forindex,infoinenumerate(read): print(info[-2:])
读第一行的第三列
filename='D:\\file_information1.csv' withopen(filename,'r',encoding='utf-8')asf: read=csv.reader(f) forindex,infoinenumerate(read): ifindex==0: print(info[2:3])
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。