Python 学习 第十三篇:数据的读写-文件、DataFrame、json
Python的文件是一个重要的对象,使用open()函数来打开文件,创建文件对象,进行文件的读写操作。当数据用于交换信息时,通常需要把数据保存为有格式的文本数据,可以保存为有特定的行分隔符和列分隔符的数据,这可以使用pandas模块中的函数来读写;也可以保存为json结构的数据,这可以使用json模块中的函数来实现;对于大型的数据交互,通常使用数据库。
Python基础库中open()函数用于打开文件,创建文件对象:
open(name, mode, encoding=None)
参数注释:
name是文件名,包括路径
encoding 是编码方式,常用的编码方式是utf-8
mode是打开文件的模式,最常用的模式是:
- r:只读模式,表示打开文件是为了从文件的开头读取文件中的数据;
- w:只写模式,表示打开文件是为了向文件写入数据。如果该文件已存在,那么打开该文件,删除原有的内容,从文件开头开始写入;如果该文件不存在,那么创建新的文件。
- a:以只追加可写模式打开文件,并将文件指针指向文件尾部;如果文件不存在则创建
open()函数创建一个file 对象,文件对象的主要方法:
- file.read([size]):size 未指定则返回整个文件,如果文件大小 >2 倍内存则有问题,f.read()读到文件尾时返回""(空字串)。
- file.readline():只读取一行。
- file.readlines([size]) :返回包含size行的列表, size 未指定则返回全部行。
- for line in f: print( line ):通过迭代器访问。
- f.write("hello\n"):如果要写入字符串以外的数据,先将他转换为字符串。
- f.close() 关闭文件
1,读取文件
调用open()函数打开一个文件,设置mode='r',表示打开文件是为了读取文件中的数据,调用文件对象的函数或迭代器来逐行读取数据:
file = open('test.txt','r',encoding='utf-8')
lines = [line.strip() for line in file]
file.close()
注意:打开文件之后,完成文件的读写之后,必须调用文件对象的close()方法,最终关闭文件。
2,写入文件
调用open()函数打开一个文件,如果设置mode='w',那么表示打开文件是为了向文件中写入数据,调用文档对象的write('content')函数向文档中写入内容。
file = open('test.txt','w',encoding='utf-8')
file.write('write content to file')
file.close()
注意:打开文件之后,完成文件的读写之后,必须调用文件对象的close()方法,最终关闭文件。
3,文件的关闭
调用open()函数打开一个文件,是把文件读取到内存中的,如果不及时关闭文件,文件对象就会一直占用系统资源,除了调用文件对象的close()方法关闭文件之外,还可以使用 with open(),由系统自动关闭文件:
with open('test.txt','r',encoding='utf-8') as file:
    lines = [line.strip() for line in file] 
参考文档:
Python 学习 第十三篇:数据的读写-文件、DataFrame、json的更多相关文章
- Python学习第十三篇——函数的深层次运用
		def make_pizza(size,*toppings): print("\nmaking a "+str(size)+" size pizza with follo ... 
- Python学习笔记——基础篇【第六周】——json & pickle & shelve & xml处理模块
		json & pickle 模块(序列化) json和pickle都是序列化内存数据到文件 json和pickle的区别是: json是所有语言通用的,但是只能序列化最基本的数据类型(字符串. ... 
- Python  学习 第16篇:数据类型(字典和Json)
		字典是键/值对构成的集合,字典通过大括号来创建,字典的键是字符串,而值可以是任何数据对象. 字典有两个重要的特征: 字典是无序的,字典项没有特定的顺序,只能通过键来获取值: 字典是可变的,支持原处修改 ... 
- Python学习笔记之将数据写入到文件中
		10-3 访客:编写一个程序,提示用户输入其名字:用户作出响应后,将其名字写入到文件guest.txt 中. 编写Python代码: username = input("Please ent ... 
- Python学习笔记基础篇——总览
		Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列 ... 
- Python 学习 第十篇 CMDB用户权限管理
		Python 学习 第十篇 CMDB用户权限管理 2016-10-10 16:29:17 标签: python 版权声明:原创作品,谢绝转载!否则将追究法律责任. 不管是什么系统,用户权限都是至关重要 ... 
- Python学习笔记进阶篇——总览
		Python学习笔记——进阶篇[第八周]———进程.线程.协程篇(Socket编程进阶&多线程.多进程) Python学习笔记——进阶篇[第八周]———进程.线程.协程篇(异常处理) Pyth ... 
- Python3 Pandas的DataFrame格式数据写入excle文件、json、html、剪贴板、数据库
		Python3 Pandas的DataFrame格式数据写入excle文件.json.html.剪贴板.数据库 一.DataFrame格式数据 Pandas是Python下一个开源数据分析的库,它提供 ... 
- MyCat 学习笔记 第九篇.数据分片 之 数值分布
		1 应用场景 Mycat 自带了多套数据分片的机制,其实根据数值分片也是比较简单,其实这个和数据取摸是类似的实现. 优.缺点同上一篇 2 环境说明 参考 <MyCat 学习笔记>第六篇. ... 
随机推荐
- 解决Chrome与jQuery菜单兼容问题
			题外,Chrome最近在耗电量方面超过了Edge,不过内存占用还是高啊,开发时偶尔用用.这不,http://jqueryui.com/menu/的官方菜单都支持的不好,改改吧! 打开jquery-ui ... 
- java POI导出Excel文件数据库的数据
			在web开发中,有一个经典的功能,就是数据的导入导出.特别是数据的导出,在生产管理或者财务系统中用的非常普遍,因为这些系统经常要做一些报表打印的工作.这里我简单实现导出Excel文件. POI jar ... 
- Windows Server 2016-管理站点复制(一)
			可以使用Active Directory站点和服务管理单元来管理实现站点间复制拓扑的特定于站点的对象.这些对象存储在Active Directory域服务 (AD DS) 的站点容器中.同一个站点内的 ... 
- Linux shell编写端口扫描脚本
			Linux shell编写端口扫描脚本 需求: 扫描特定主机 扫描特定主机的特定端口 扫描特定网段 扫描特定网段中哪些主机开放了特定的端口 源码如下: #/bin/bash #该脚本用于对特定目标主机 ... 
- php循环删除checkbox
			一.首先要了解sql语句$SQL=delete from `user` where id in (1,2,4); 表单大概是:form action= method=post input name=I ... 
- FAT32格式和NTFS格式区别
			NTFS(Windows):支持最大分区2TB,最大文件2TB: FAT16(Windows):支持最大分区2GB,最大文件2GB: FAT32(Windows):支持最大分区128GB,最大文件4G ... 
- 卸载安装node npm (Mac linux )
			1. 卸载node npm (1) 先卸载 npm: sudo npm uninstall npm -g (2) 然后卸载 Node.js. (2.1) 如果是 Ubuntu 系统并使用 apt-ge ... 
- Three.js基础学习【修改版】
			一. Three.js官网及使用Three.js必备的三个条件 1.Three.js 官网 https://threejs.org/ 2.使用Three.js必备的三个条件(To actually b ... 
- B - Moo Volume
			Farmer John has received a noise complaint from his neighbor, Farmer Bob, stating that his cows are ... 
- python笔记31-使用ddt报告出现dict() -> new empty dictionary dict(mapping) 问题解决
			使用ddt框架生成html报告的时候,出现:dict() -> new empty dictionary dict(mapping) -> new dictionary initializ ... 
