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文本相似性计算之编辑距离详解
Nov 28 Python
python解析基于xml格式的日志文件
Feb 25 Python
python处理xml文件的方法小结
May 02 Python
在windows下使用python进行串口通讯的方法
Jul 02 Python
python搜索包的路径的实现方法
Jul 19 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
Oct 24 Python
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
Apr 07 Python
python模拟斗地主发牌
Apr 22 Python
Python实现UDP程序通信过程图解
May 15 Python
Python用类实现扑克牌发牌的示例代码
Jun 01 Python
如何用python爬取微博热搜数据并保存
Feb 20 Python
Python中的 enumerate和zip详情
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下判断数组中是否存在相同的值array_unique
2008/03/25 PHP
PHP递归遍历指定文件夹内的文件实现方法
2016/11/15 PHP
javaScript 读取和设置文档元素的样式属性
2009/04/14 Javascript
JS隐藏参数post传值实例
2013/04/18 Javascript
js实现页面转发功能示例代码
2013/08/05 Javascript
nodejs分页类代码分享
2014/06/17 NodeJs
javascript中Date对象的getDay方法使用指南
2014/12/22 Javascript
jQuery热气球动画半透明背景的后台登录界面代码分享
2015/08/28 Javascript
浅谈$_FILES数组为空的原因
2017/02/16 Javascript
关于Mac下安装nodejs、npm和cnpm的教程
2018/04/11 NodeJs
vuex actions传递多参数的处理方法
2018/09/18 Javascript
详解vue 在移动端体验上的优化解决方案
2019/05/20 Javascript
JavaScript中变量提升和函数提升的详解
2020/08/07 Javascript
JavaScript浅层克隆与深度克隆示例详解
2020/09/01 Javascript
跟老齐学Python之集合的关系
2014/09/24 Python
python实现分析apache和nginx日志文件并输出访客ip列表的方法
2015/04/04 Python
django接入新浪微博OAuth的方法
2015/06/29 Python
Python模拟登陆实现代码
2017/06/14 Python
使用python编写udp协议的ping程序方法
2018/04/22 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
2018/05/24 Python
python utc datetime转换为时间戳的方法
2019/01/15 Python
python实现kmp算法的实例代码
2019/04/03 Python
python跳出双层for循环的解决方法
2019/06/24 Python
Tensorflow训练模型越来越慢的2种解决方案
2020/02/07 Python
PyTorch如何搭建一个简单的网络
2020/08/24 Python
python re的findall和finditer的区别详解
2020/11/15 Python
使用canvas实现黑客帝国数字雨效果
2020/01/02 HTML / CSS
html5使用window.postMessage进行跨域实现数据交互的一次实战
2021/02/24 HTML / CSS
介绍一下linux的文件权限
2012/02/15 面试题
学生会竞选自荐信
2013/10/12 职场文书
客房领班岗位职责
2015/02/11 职场文书
实习生辞职信范文
2015/03/02 职场文书
高校自主招生自荐信2015
2015/03/04 职场文书
使用Golang的channel交叉打印两个数组的操作
2021/04/29 Golang
集英社今正式宣布 成立游戏公司“集英社Games”
2022/03/31 其他游戏
springboot实现string转json json里面带数组
2022/06/16 Java/Android