Python之文件读写(csv文件,CSV库,Pandas库)
前言
一.Python文件读取
1. open函数是内置函数之with操作
- 关于路径设置的问题斜杠设置成D:\\文件夹\\文件或是D:/文件夹/文件
f = open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
- file: 必需,文件路径(相对或者绝对路径)。
- mode: 可选,文件打开模式
- buffering: 设置缓冲
- encoding: 一般使用utf8
- errors: 报错级别
- newline: 区分换行符
- closefd: 传入的file参数类型
- opener:
打开文件之后就要开始操作了,一个读取了,但是要是没有打开文件就会报错,或则在读取的过程中报错就不会关闭文件了,所以为了无论报错与否,在使用完文件后就要关闭文件。如下:
try:
f = open('/path/to/file', 'r')
print(f.read())
finally:
if f:
f.close()
这样写太过于麻烦,Python中直接使用with来直接自动来帮我们调用close()
with open('/path/to/file', 'r') as f:
print(f.read())
上面的写法和try...finally效果一样。
2. 读文件
f.read()一次性读入所有数据,保险起见可以规定每次读取的数据大小,f.read(size)进行反复调用读取。
f.readline(),每次读取一行,f.readlines()一次读取多行另外,调用readline()可以每次读取一行内容,调用readlines()一次读取所有内容并按行返回list。因此,要根据需要决定怎么调用。
for line in f.readlines():
print(line.strip()) # 把末尾的'\n'删掉
3. 写文件
和写文件一样,首先使用open函数直接打开但是传入标识符mode='w'即写入模式。
可以调用f.write()写入内容,写完之后务必使用f.close()关闭文件。
方法一:
f = open('/Users/michael/test.txt', 'w')
f.write('Hello, world!')
f.close()
方法二:
with open('/Users/michael/test.txt', 'w') as f:
f.write('Hello, world!')
- 要写入或则是读取特定编码的文本文件,请给open()函数传入encoding参数,将字符串自动转换成指定编码。
4. 多个文件的读写操作
方法一:
with open('/home/xbwang/Desktop/output_measures.txt','r') as f:
with open('/home/xbwang/Desktop/output_measures2.txt','r') as f1:
with open('/home/xbwang/Desktop/output_output_bk.txt','r') as f2:
........
........
........
方法二:
with open('/home/xbwang/Desktop/output_measures.txt','r') as f:
........
with open('/home/xbwang/Desktop/output_measures2.txt','r') as f1:
........
with open('/home/xbwang/Desktop/output_output_bk.txt','r') as f2:
........
二、读取CSV文件
1. 使用csv库进行读写操作
1.获取csv文件的文件表头
#方式一
import csv
with open("D:\\test.csv") as f:
reader = csv.reader(f)
rows=[row for row in reader]
print(rows[0])
#方式二
import csv
with open("D:\\test.csv") as f:
#1.创建阅读器对象
reader = csv.reader(f)
#2.读取文件第一行数据
head_row=next(reader)
print(head_row)
2.读取文件的某一列数据
说明使用csv.reader()返回一个reader对象,它将迭代给定csvfile中的行。
csvfile可以是任何支持迭代器协议的对象,
并在每次__next__()调用其方法时返回一个字符串- 文件对象和列表对象都是合适的。
import csv
with open("D:\\test.csv") as f:
reader = csv.reader(f)
column=[row[0] for row in reader]
print(column)
3.写入csv文件
import csv
with open("D:\\test.csv",'a') as f:
row=['曹操','23','学生','黑龙江','5000']
write=csv.writer(f)
write.writerow(row)
print("写入完毕!")
- writerow()方法是一行一行写入,
- writerows方法是一次写入多行
2. 使用pandas库进行csv文件操作
1.读取csv的全部文件
import pandas as pd
path= 'D:\\test.csv'
with open(path) as file:
data=pd.read_csv(file)
print(data)
2.读取文件前几行数据
import pandas as pd
path= 'D:\\test.csv'
with open(path)as file:
data=pd.read_csv(file)
#读取前2行数据
head_datas = data.head(0)
head_datas = data.head(1)
print(head_datas)
说明head函数就是用来读取哪一行的
3.读取文件哪一行的全部内容
import pandas as pd
path= 'D:\\test.csv'
with open(path)as file:
data=pd.read_csv(file)
#读取第一行所有数据
print(data.ix[0,])
4.读取文件的哪几行数据
import pandas as pd
path= 'D:\\test.csv'
with open(path)as file:
data=pd.read_csv(file)
#读取第一行、第二行、第四行的所有数据
print(data.ix[[0,1,3],:])
5.读取所有行和列数据
import pandas as pd
path= 'D:\\test.csv'
with open(path)as file:
data=pd.read_csv(file)
#读取所有行和列数据
print(data.ix[:,:])
Python之文件读写(csv文件,CSV库,Pandas库)的更多相关文章
- Python使用openpyxl读写excel文件
Python使用openpyxl读写excel文件 这是一个第三方库,可以处理xlsx格式的Excel文件.pip install openpyxl安装.如果使用Aanconda,应该自带了. 读取E ...
- 【转发】Python使用openpyxl读写excel文件
Python使用openpyxl读写excel文件 这是一个第三方库,可以处理xlsx格式的Excel文件.pip install openpyxl安装.如果使用Aanconda,应该自带了. 读取E ...
- Python 用configparser读写ini文件
一.configparser 简介Python用于读写ini文件的一个官方标准库.具体详见官网链接 二.configparser 部分方法介绍 方法 描述 read(filenames) filesn ...
- python xlrd,xlwt 读写excel文件
python 读excel文件,需要xlrd库.下载地址:https://pypi.python.org/pypi/xlrd python 写excel文件,需要xlwt库.下载地址:https:// ...
- python第二十九课——文件读写(复制文件)
自定义函数:实现文件复制操作有形参(2个) 没有返回值相似版(不用) def copyFile(src,dest): #1.打开两个文件:1个关联读操作,1个关联写操作 fr=open(src,'rb ...
- python学习之文件读写入门(文件读的几种方式比较)
1.文件读写简单实例:(以w写的方式打开一个文件,以r读一个文件) # Author : xiajinqi # 文件读写的几种方式 # 文件读写 f = open("D://test.txt ...
- 12--Python入门--文件读写--TXT文件
在进行数据分析之前,可能需要读写自己的数据文件.或者在完成数据分析之后,想把结果输出到外部的文件在Python中,利用pandas模块中的几个函数,可以轻松实现这些功能,利用pandas读取文件之后数 ...
- Linux Direct 文件读写(文件DIO)
有时候,读写文件并不想要使用系统缓存(page cache),此时 direct 文件读写就派上了用场,使用方法: (1)打开文件时,添加O_DIRECT参数: 需要定义_GNU_SOURCE,否则找 ...
- 文件操作ofstream,open,close,ifstream,fin,依照行来读取数据, fstream,iosin iosout,fio.seekg(),文件写入和文件读写,文件拷贝和文件
1.ofstream,open,close 写入文件 #include<iostream> #include<fstream> using namespace std; ...
- QT_8_Qt中的事件处理_定时器事件_定时器类_事件分发器_事件过滤器_绘图事件_高级绘图事件_绘图设备_QFile 文件读写_QFileInfo文件信息
Qt中的事件处理 1.1. 捕获QLabel中是鼠标事件 1.2. enterevent 鼠标进入 1.3. leaveevent 鼠标离开 1.4. 鼠标按下MyLabel::mousePressE ...
随机推荐
- Hbase put写入源码分析
今天有空闲时间看一下HBASE的写入代码 MutiAction类,是一个action的container,包括get . put. delete.并且是根据region name分组的.其中核心的就是 ...
- jdk1.8 Stream 特性总结
不是数据结构 它没有内部存储,它只是用操作管道从 source(数据结构.数组.generator function.IO channel)抓取数据. 它也绝不修改自己所封装的底层数据结构的数据.例如 ...
- MongoDB学习笔记(六)
初识 MongoDB 中的索引 索引就像图书的目录一样,可以让我们快速定位到需要的内容,关系型数据库中有索引,NoSQL 中当然也有,本文我们就先来简单介绍下 MongoDB 中的索引. 索引创建 默 ...
- log4j打印抛出异常时堆栈内容
JAVA 中为快速定位,抛出异常的位置.往往需要在日志中描述. log.err("异常出错点", e); 会将出错时的堆栈信息显示出来. package com.jqyc.jase ...
- VSCode打字特效Power Mode插件
由于最近比较频繁使用VSCode这个软件写代码,然后里面有一个非常炫酷的打字特效插件,平时写代码的时候不会感觉太枯燥(其实就是装一下逼吧)! 安装很简单,但是容易忘,所以这里整理一下具体的部署步骤. ...
- 【CTS2019】随机立方体(容斥)
[CTS2019]随机立方体(容斥) 题面 LOJ 洛谷 题解 做这道题目的时候不难想到容斥的方面. 那么我们考虑怎么计算至少有\(k\)个极大值的方案数. 我们首先可以把\(k\)个极大值的位置给确 ...
- 【09】Jenkins:Pipeline 补充
写在前面的话 我们在使用普通的构建任务的时候使用了 Sonar 做代码质量管理,也使用了 Publish Over SSH 插件中更新上线,但是我们在 Pipeline 怎么使用他们呢. 如果你没有查 ...
- Blend 多文本控件介绍
原文:Blend 多文本控件介绍 多文本控件 RichTextBox FlowDocumentScrollViewer FlowDocumentPageViewer FlowDocumentReade ...
- 13、VUE单文件工程
1.为什么要使用单文件工程? 1.Vue.js路由组件的不方便 不支持引用HTML页面,以至于template里面定义的标签会编辑器当字符串,这让编辑变的困难. 2.Vue.js于Node.js语言结 ...
- new/delete与malloc/free的区别
new/delete与malloc/free的区别 参考: https://blog.csdn.net/u013485792/article/details/51329541 https://www. ...