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中is和id的用法
Apr 03 Python
Python中几种操作字符串的方法的介绍
Apr 09 Python
Windows上使用virtualenv搭建Python+Flask开发环境
Jun 07 Python
python机器学习理论与实战(六)支持向量机
Jan 19 Python
Python中.join()和os.path.join()两个函数的用法详解
Jun 11 Python
opencv python 2D直方图的示例代码
Jul 20 Python
pytz格式化北京时间多出6分钟问题的解决方法
Jun 21 Python
Pygame的程序开始示例代码
May 07 Python
python为什么会环境变量设置不成功
Jun 23 Python
python Tornado框架的使用示例
Oct 19 Python
Django-simple-captcha验证码包使用方法详解
Nov 28 Python
还在手动盖楼抽奖?教你用Python实现自动评论盖楼抽奖(一)
Jun 07 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
慎用preg_replace危险的/e修饰符(一句话后门常用)
2013/06/19 PHP
PHP图片处理之使用imagecopy函数添加图片水印实例
2014/11/19 PHP
在openSUSE42.1下编译安装PHP7 的方法
2015/12/24 PHP
PHP执行shell脚本运行程序不产生core文件的方法
2016/12/28 PHP
yii2中dropDownList实现二级和三级联动写法
2017/04/26 PHP
PHP多进程编程之僵尸进程问题的理解
2017/10/15 PHP
微信公众号实现扫码获取微信用户信息(网页授权)
2019/04/09 PHP
php在linux环境中如何使用redis详解
2020/12/15 PHP
AppBaseJs 类库 网上常用的javascript函数及其他js类库写的
2010/03/04 Javascript
JavaScript关闭当前页面(窗口)不带任何提示
2014/03/26 Javascript
JavaScript中的object转换成number或string规则介绍
2014/12/31 Javascript
JavaScript实现给按钮加上双重动作的方法
2015/08/14 Javascript
JS实现新浪博客左侧的Blog管理菜单效果代码
2015/10/22 Javascript
js+css绘制颜色动态变化的圈中圈效果
2016/01/27 Javascript
Bootstrap编写导航栏和登陆框
2016/05/30 Javascript
JS取数字小数点后两位或n位的简单方法
2016/10/24 Javascript
js实现刷新页面后回到记录时滚动条的位置【两种方案可选】
2016/12/12 Javascript
详解Weex基于Vue2.0开发模板搭建
2017/03/20 Javascript
VUE + UEditor 单图片跨域上传功能的实现方法
2018/02/08 Javascript
微信小程序动态生成二维码的实现代码
2018/07/25 Javascript
Python之Web框架Django项目搭建全过程
2017/05/02 Python
django基础之数据库操作方法(详解)
2017/05/24 Python
Python判断字符串是否为字母或者数字(浮点数)的多种方法
2018/08/03 Python
Python json模块dumps、loads操作示例
2018/09/06 Python
基于Python 中函数的 收集参数 机制
2019/12/21 Python
如何在 Django 模板中输出 &quot;{{&quot;
2020/01/24 Python
Python之Django自动实现html代码(下拉框,数据选择)
2020/03/13 Python
Marc O’Polo俄罗斯官方在线商店:德国高端时尚品牌
2019/12/26 全球购物
建议书标准格式
2014/03/12 职场文书
大学生全国两会报告感想
2014/03/17 职场文书
创业者迈进成功第一步:如何写创业计划书?
2014/03/22 职场文书
保险内勤岗位职责
2015/04/13 职场文书
小学教师教学反思
2016/02/24 职场文书
装修安全责任协议书
2016/03/22 职场文书
升级 Win11 还是坚守 Win10?微软 Win11 新系统缺失功能大盘点
2022/04/05 数码科技
python游戏开发之pygame实现接球小游戏
2022/04/22 Python