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常用方法和技巧
May 18 Python
在Django的模型中执行原始SQL查询的方法
Jul 21 Python
python编程实现随机生成多个椭圆实例代码
Jan 03 Python
python实现逐个读取txt字符并修改
Dec 24 Python
对Django项目中的ORM映射与模糊查询的使用详解
Jul 18 Python
python监控nginx端口和进程状态
Sep 06 Python
Tensorflow 自定义loss的情况下初始化部分变量方式
Jan 06 Python
Python函数式编程实例详解
Jan 17 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
Jun 02 Python
Python实现将元组中的元素作为参数传入函数的操作
Jun 05 Python
Python爬取数据并实现可视化代码解析
Aug 12 Python
python制作微博图片爬取工具
Jan 16 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中AES加密解密的例子小结
2014/02/18 PHP
PHP二维关联数组的遍历方式(实例讲解)
2017/10/18 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
2019/03/01 PHP
javascript实现的基于金山词霸网络翻译的代码
2010/01/15 Javascript
[JSF]使用DataModel处理表行事件的实例代码
2013/08/05 Javascript
javascript实现无限级select联动菜单
2015/01/02 Javascript
使用jQuery管理选择结果
2015/01/20 Javascript
JavaScript使用RegExp进行正则匹配的方法
2015/07/11 Javascript
基于Javascript实现返回顶部按钮
2016/02/29 Javascript
基于zepto的移动端轻量级日期插件--date_picker
2016/03/04 Javascript
简单掌握JavaScript中const声明常量与变量的用法
2016/05/21 Javascript
vue-star评星组件开发实例
2018/03/01 Javascript
Vue infinite update loop的问题解决
2019/04/23 Javascript
Python使用turtule画五角星的方法
2015/07/09 Python
python实现批量修改文件名代码
2017/09/10 Python
python调用其他文件函数或类的示例
2019/07/16 Python
Python安装及Pycharm安装使用教程图解
2019/09/20 Python
Python imageio读取视频并进行编解码详解
2019/12/10 Python
解决pycharm上的jupyter notebook端口被占用问题
2019/12/17 Python
pytorch中的自定义反向传播,求导实例
2020/01/06 Python
基于Tensorflow批量数据的输入实现方式
2020/02/05 Python
以SQLite和PySqlite为例来学习Python DB API
2020/02/05 Python
Python下使用Trackbar实现绘图板
2020/10/27 Python
Farfetch阿联酋:奢侈品牌时尚购物平台
2019/07/26 全球购物
List, Set, Map是否继承自Collection接口?
2016/05/16 面试题
介绍一下Linux中的链接
2016/06/05 面试题
过滤器的用法
2013/10/08 面试题
幼儿园开学家长寄语
2014/01/19 职场文书
校园环保标语
2014/06/13 职场文书
环保志愿者活动总结
2014/06/27 职场文书
婚礼答谢礼品
2015/01/20 职场文书
部门经理迟到检讨书
2015/02/16 职场文书
汽车销售助理岗位职责
2015/04/14 职场文书
Ajax是什么?Ajax高级用法之Axios技术
2021/04/21 Javascript
JS前端轻量fabric.js系列物体基类
2022/08/05 Javascript