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人人网登录应用实例
Sep 26 Python
Python中多线程及程序锁浅析
Jan 21 Python
python实现网站的模拟登录
Jan 04 Python
Python函数装饰器常见使用方法实例详解
Mar 30 Python
Django视图扩展类知识点详解
Oct 25 Python
Python算法中的时间复杂度问题
Nov 19 Python
用Python生成HTML表格的方法示例
Mar 06 Python
python代码xml转txt实例
Mar 10 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
Apr 21 Python
keras打印loss对权重的导数方式
Jun 10 Python
Python StringIO及BytesIO包使用方法解析
Jun 15 Python
Python+Matplotlib图像上指定坐标的位置添加文本标签与注释
Apr 11 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
使用MaxMind 根据IP地址对访问者定位
2006/10/09 PHP
php增删改查示例自己写的demo
2013/09/04 PHP
PHP获取毫秒级时间戳的方法
2015/04/15 PHP
PHP请求Socket接口测试实例
2016/08/12 PHP
cakephp常见知识点汇总
2017/02/24 PHP
关于PHP通用返回值设置方法
2017/03/31 PHP
使用git迁移Laravel项目至新开发环境的步骤详解
2020/04/06 PHP
PHP编程一定要改掉的5个不良习惯
2020/09/18 PHP
“不能执行已释放的Script代码”错误的原因及解决办法
2007/09/09 Javascript
Javascript Jquery 遍历Json的实现代码
2010/03/31 Javascript
21个JavaScript事件(Events)属性汇总
2014/12/02 Javascript
本人自用的global.js库源码分享
2015/02/28 Javascript
jQuery中prepend()方法使用详解
2015/08/11 Javascript
node.js学习之交互式解释器REPL详解
2016/12/08 Javascript
Jquery获取radio选中值实例总结
2019/01/17 jQuery
Node爬取大批量文件的方法示例
2019/06/28 Javascript
如何在vue中使用HTML 5 拖放API
2021/01/14 Vue.js
json.stringify()与json.parse()的区别以及用处
2021/01/25 Javascript
[01:43]3.19DOTA2发布会 三代刀塔人第三代
2014/03/25 DOTA
python的mysqldb安装步骤详解
2017/08/14 Python
django中的setting最佳配置小结
2017/11/21 Python
小米5s微信跳一跳小程序python源码
2018/01/08 Python
对python pandas读取剪贴板内容的方法详解
2019/01/24 Python
Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例
2020/03/03 Python
vue.js刷新当前页面的实例讲解
2020/12/29 Python
linux面试题参考答案(6)
2016/06/23 面试题
应届毕业生求职信范例分享
2013/12/17 职场文书
父亲追悼会答谢词
2014/01/17 职场文书
销售简历自我评价
2014/01/24 职场文书
法学个人求职信范文
2014/01/27 职场文书
《特殊的葬礼》教学反思
2014/04/27 职场文书
伦敦奥运会的口号
2014/06/21 职场文书
厨师长岗位职责范本
2014/08/25 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
法院个人总结
2015/03/03 职场文书
MySQL 那些常见的错误设计规范,你都知道吗
2021/07/16 MySQL