python3读取csv文件任意行列代码实例


Posted in Python onJanuary 13, 2020

这篇文章主要介绍了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, 'Spring'), (2, 'Summer'), (3, 'Fall'), (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', '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")#二进制格式读文件
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,'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)

读取任意行,可根据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) #自己根据index的数字判断

读取第一和第二列

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])

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python对指定目录下文件进行批量重命名的方法
Apr 18 Python
Python单体模式的几种常见实现方法详解
Jul 28 Python
详解 Python 与文件对象共事的实例
Sep 11 Python
python实现弹跳小球
May 13 Python
python3获取当前目录的实现方法
Jul 29 Python
Python迭代器模块itertools使用原理解析
Dec 11 Python
Keras使用tensorboard显示训练过程的实例
Feb 15 Python
Python 剪绳子的多种思路实现(动态规划和贪心)
Feb 24 Python
总结Pyinstaller的坑及终极解决方法(小结)
Sep 21 Python
Python如何在bool函数中取值
Sep 21 Python
python 删除系统中的文件(按时间,大小,扩展名)
Nov 19 Python
python如何查找列表中元素的位置
May 30 Python
pytorch程序异常后删除占用的显存操作
Jan 13 #Python
Python跑循环时内存泄露的解决方法
Jan 13 #Python
PyTorch使用cpu加载模型运算方式
Jan 13 #Python
Python如何读取文件中图片格式
Jan 13 #Python
详解python破解zip文件密码的方法
Jan 13 #Python
PyTorch 随机数生成占用 CPU 过高的解决方法
Jan 13 #Python
python批量处理txt文件的实例代码
Jan 13 #Python
You might like
php图片加中文水印实现代码分享
2012/10/31 PHP
php计划任务之ignore_user_abort函数实现方法
2015/01/08 PHP
PHP中-&gt;和=&gt;的含义及使用示例解析
2020/08/06 PHP
[Web]防止用户复制页面内容和另存页面的方法
2009/02/06 Javascript
基于jquery的实现简单的表格中增加或删除下一行
2010/08/01 Javascript
在jQuery 1.5中使用deferred对象的代码(翻译)
2011/03/10 Javascript
javascript 文件的同步加载与异步加载实现原理
2012/12/13 Javascript
jquery简单的拖动效果实现原理及示例
2013/07/26 Javascript
JS 两个字符串时间的天数差计算
2013/08/25 Javascript
node.js中的fs.fstatSync方法使用说明
2014/12/15 Javascript
JavaScript Math.ceil 方法(对数值向上取整)
2015/01/09 Javascript
ajax实现动态下拉框示例
2017/01/10 Javascript
详解angularjs结合pagination插件实现分页功能
2017/02/10 Javascript
详解Angular4 路由设置相关
2017/08/26 Javascript
[02:15]2015国际邀请赛选手档案IG.Ferrari 430
2015/07/30 DOTA
Django中使用celery完成异步任务的示例代码
2018/01/23 Python
Python中str.join()简单用法示例
2018/03/20 Python
解决Django migrate No changes detected 不能创建表的问题
2018/05/27 Python
Python超越函数积分运算以及绘图实现代码
2019/11/20 Python
python数据库开发之MongoDB安装及Python3操作MongoDB数据库详细方法与实例
2020/03/18 Python
Python使用Selenium实现淘宝抢单的流程分析
2020/06/23 Python
如何利用python发送邮件
2020/09/26 Python
美国鞋类购物网站:Shiekh Shoes
2016/08/21 全球购物
高中生毕业自我鉴定
2013/10/10 职场文书
怎么写好自荐信
2013/10/30 职场文书
车间机修工岗位职责
2014/02/28 职场文书
投资合作协议书
2014/04/17 职场文书
学生期末评语大全
2014/04/30 职场文书
节能环保口号
2014/06/12 职场文书
趣味运动会简讯
2015/07/20 职场文书
2016年春节慰问信息大全
2015/11/30 职场文书
银行柜员工作心得体会
2016/01/23 职场文书
小学英语教学反思范文
2016/02/15 职场文书
python爬虫之selenium库的安装及使用教程
2021/05/23 Python
MySQL注入基础练习
2021/05/30 MySQL
一文弄懂MySQL中redo log与binlog的区别
2022/02/15 MySQL