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 相关文章推荐
django中模板的html自动转意方法
May 27 Python
Python使用itertools模块实现排列组合功能示例
Jul 02 Python
python pytest进阶之fixture详解
Jun 27 Python
用python3 返回鼠标位置的实现方法(带界面)
Jul 05 Python
pytorch中获取模型input/output shape实例
Dec 30 Python
pytorch中的卷积和池化计算方式详解
Jan 03 Python
Python 保存加载mat格式文件的示例代码
Aug 04 Python
Python Request类源码实现方法及原理解析
Aug 17 Python
解决PyCharm无法使用lxml库的问题(图解)
Dec 22 Python
python实现PolynomialFeatures多项式的方法
Jan 06 Python
详解matplotlib绘图样式(style)初探
Feb 03 Python
python-for x in range的用法(注意要点、细节)
May 10 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
thinkphp中连接oracle时封装方法无法用的解决办法
2013/06/17 PHP
浅析HTTP消息头网页缓存控制以及header常用指令介绍
2013/06/28 PHP
laravel 5 实现模板主题功能
2015/03/02 PHP
PHP实现发送邮件的方法(基于简单邮件发送类)
2015/12/17 PHP
简单实用的PHP文本缓存类实例
2019/03/22 PHP
Laravel框架实现抢红包功能示例
2019/10/31 PHP
Javascript 面向对象 对象(Object)
2010/05/13 Javascript
javascript天然的迭代器
2010/10/29 Javascript
CSS鼠标响应事件经过、移动、点击示例介绍
2013/09/04 Javascript
使用CSS3的scale实现网页整体缩放
2014/03/18 Javascript
javascript数组操作方法小结和3个属性详细介绍
2014/07/05 Javascript
JS按回车键实现登录的方法
2014/08/25 Javascript
node.js中的url.parse方法使用说明
2014/12/10 Javascript
js使用cookie记录用户名的方法
2015/11/26 Javascript
javascript针对cookie的基本操作实例详解
2015/11/30 Javascript
第九章之路径分页标签与徽章组件
2016/04/25 Javascript
jQuery each函数源码分析
2016/05/25 Javascript
js自制图片放大镜功能
2017/01/24 Javascript
利用node.js写一个爬取知乎妹纸图的小爬虫
2017/05/03 Javascript
Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法
2017/07/09 Javascript
浅谈Vue.js 组件中的v-on绑定自定义事件理解
2017/11/17 Javascript
[56:00]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第一局
2016/03/05 DOTA
解决Python selenium get页面很慢时的问题
2019/01/30 Python
在django admin中添加自定义视图的例子
2019/07/26 Python
浅析python表达式4+0.5值的数据类型
2020/02/26 Python
Python修改列表值问题解决方案
2020/03/06 Python
matplotlib自定义鼠标光标坐标格式的实现
2021/01/08 Python
python 批量将中文名转换为拼音
2021/02/07 Python
美国折扣网站:jClub
2017/08/07 全球购物
倩碧澳大利亚官网:Clinique澳大利亚
2019/07/22 全球购物
大学新生欢迎词
2014/01/10 职场文书
十岁生日家长答谢词
2014/01/17 职场文书
小学班级特色活动方案
2014/08/31 职场文书
《假如》教学反思
2016/02/17 职场文书
会议承办单位欢迎词
2019/07/09 职场文书
本地通过nginx配置反向代理的全过程记录
2021/03/31 Servers