python菜鸟教程学习13:文件操作
读和写文件
open() 将会返回一个 file 对象
open(filename, mode)
不同模式打开文件的完全列表:https://www.runoob.com/python3/python3-inputoutput.html


简单的代码
1 f=open("exp.txt",'w')
2 f.write("hhhhhh")
3 f.close()
4 f=open("exp.txt",'w')
5 f.write('fugaighhhhhh')
6 f.close()
7 f=open("exp.txt",'a')
8 f.write('\nzhuijiahhhh')
9 f.close()
文件对象的方法
- f.read()
为了读取一个文件的内容,调用 f.read(size), 这将读取一定数目的数据, 然后作为字符串或字节对象返回。size 是一个可选的数字类型的参数。 当 size 被忽略了或者为负, 那么该文件的所有内容都将被读取并且返回。
- f.readline()
f.readline() 会从文件中读取单独的一行。换行符为 '\n'。f.readline() 如果返回一个空字符串, 说明已经已经读取到最后一行。
- f.readlines()
f.readlines() 将返回该文件中包含的所有行。如果设置可选参数 sizehint, 则读取指定长度的字节, 并且将这些字节按行分割。
- f.write()
f.write(string) 将 string 写入到文件中, 然后返回写入的字符数。
如果要写入一些不是字符串的东西, 那么将需要先进行转换。
# 打开一个文件
f = open("/tmp/foo1.txt", "w") value = ('www.runoob.com', 14)
s = str(value)
f.write(s) # 关闭打开的文件
f.close()
- f.tell()
f.tell() 返回文件对象当前所处的位置, 它是从文件开头开始算起的字节数。
- f.seek()
如果要改变文件当前的位置, 可以使用 f.seek(offset, from_what) 函数。from_what 的值, 如果是 0 表示开头, 如果是 1 表示当前位置, 2 表示文件的结尾,例如:
- seek(x,0) : 从起始位置即文件首行首字符开始移动 x 个字符
- seek(x,1) : 表示从当前位置往后移动x个字符
- seek(-x,2):表示从文件的结尾往前移动x个字符
- f.close()
当你处理完一个文件后, 调用 f.close() 来关闭文件并释放系统的资源,如果尝试再调用该文件,则会抛出异常。
当处理一个文件对象时, 使用 with 关键字是非常好的方式。在结束后, 它会帮你正确的关闭文件。 而且写起来也比 try - finally 语句块要简短。
>>> with open('/tmp/foo.txt', 'r') as f:
... read_data = f.read()
>>> f.closed
True
pickle模块
python的pickle模块实现了基本的数据序列和反序列化。通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储。通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。
基本接口:
pickle.dump(obj, file, [,protocol])
对 file 以读取的形式打开
x = pickle.load(file)
1 import pickle
2
3 # 使用pickle模块将数据对象保存到文件
4 data1 = {'a': [1, 2.0, 3, 4+6j],
5 'b': ('string', u'Unicode string'),
6 'c': None}
7
8 selfref_list = [1, 2, 3]
9 selfref_list.append(selfref_list)
10
11 output = open('data.pkl', 'wb')
12
13 # Pickle dictionary using protocol 0.
14 pickle.dump(data1, output)
15
16 # Pickle the list using the highest protocol available.
17 pickle.dump(selfref_list, output, -1)
18
19 output.close()
1 import pprint, pickle
2
3 #使用pickle模块从文件中重构python对象
4 pkl_file = open('data.pkl', 'rb')
5
6 data1 = pickle.load(pkl_file)
7 pprint.pprint(data1)
8
9 data2 = pickle.load(pkl_file)
10 pprint.pprint(data2)
11
12 pkl_file.close()
关于file对象的详细方法和参数
https://www.runoob.com/python3/python3-file-methods.html
python3 文件/目录方法
https://www.runoob.com/python3/python3-os-file-methods.html
python菜鸟教程学习13:文件操作的更多相关文章
- python菜鸟教程学习:数据结构
列表方法 list.append(x):把一个元素添加到列表的结尾,相当于 a[len(a):] = [x]. list.extend(L):通过添加指定列表的所有元素来扩充列表,相当于 a[len( ...
- python菜鸟教程学习3:基础语法
菜鸟教程对应网址:https://www.runoob.com/python3/python3-basic-syntax.html 编码:python3用UTF-8编码,所有字符串都是unicode字 ...
- python菜鸟教程学习10:数据结构
列表方法 list.append(x):把一个元素添加到列表的结尾,相当于 a[len(a):] = [x]. list.extend(L):通过添加指定列表的所有元素来扩充列表,相当于 a[len( ...
- python菜鸟教程学习1:背景性学习
https://www.runoob.com/python3/python3-intro.html 优点 简单 -- Python 是一种代表简单主义思想的语言.阅读一个良好的 Python 程序就感 ...
- python菜鸟教程学习4:基本数据类型
变量:python中的变量不需要声明,但在使用前都必须要赋值,变量赋值之后才会被创建 在python中变量是没有类型的,所有的数据类型是对内存中对象的类型. 赋值:使用等号=来给变量赋值 python ...
- python菜鸟教程学习9:函数
函数的定义 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.python提供了很多内建函数,但我们依然可以自己创建函数,叫做用户自定义函数. 自定义函数 你可以定义一个由自己想要功能 ...
- python菜鸟教程学习5: python运算符
算术运算符: 整除符号//:向下取接近商的整数 加+ 减- 乘* 除/ 取余% 幂** 比较运算符: 等于== 不等于!= 大于> 小于< 大于等于>= 小于等于<= 赋值运算 ...
- (Python )格式化输出、文件操作、json
本节学习Python的格式化输出,文件操作以及json的简单用法 1.格式化输出 将非字符串类型转换成字符串,可以使用函数:str() 或者repr() ,(这两个函数的区别目前我还没搞懂,求解答) ...
- python学习笔记:文件操作和集合(转)
转自:http://www.nnzhp.cn/article/16/ 这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句 ...
随机推荐
- 新鲜出炉!花了三天整理的JVM复习知识点,面试突击必备!
此次JVM知识点包含以下几个部分 1.类加载机制 2.jvm运行时数据区 3.java对象内存布局 4.jvm内存模型 5.垃圾回收机制 6.垃圾收集器 7.问题排查 一 类加载机制 主要说的部分是这 ...
- CorelDRAW多个文件如何批量导出JPG
好多同学对于CorelDRAW 2018批量导出图片格式的操作不太了解.这种情况比较常见,比如设计了一本画册,在同一个文档中页面比较多,如果一页一页导出那将是一项巨大的工程,这时候我们就会想到CDR的 ...
- robot 如何定义用户关键字、变量
1.用户关键字,使用robot语法定义的关键字 2.系统关键字 自带的 3.资源文件,自己定义的关键字 4.变量 自己定义的关键字,需单独建一个资源文件 自己写的关键字,需写在***Keywords ...
- 自定义JSTL Tag
<?xml version="1.0" encoding="UTF-8" ?> <taglib xmlns="http://java ...
- 01-01.单一职责原则(Single Responsibility)
1.基本介绍 对于类来说的,就是一个类,应该只负责一项职责(一个类只管一件事). 如类A负责两个不同职责:职责1,职责2. 当职责1需求变更而改变A时,可能造成职责2执行错误,所以需要将类A的粒度分解 ...
- nginx + lua-nginx-module 编译
摘要:本文主要介绍如何将lua-nginx-module 编译到nginx主程序中. nginx是一个高性能的反向代理服务器,lua是一个小巧的脚本语言,利用lua-nginx-module模块可以使 ...
- 区块链V1版本实现之四
部分程序代码(添加区块): //添加区块 func (bc *BlockChain) AddBlock(data string) { //创建一个区块 //bc.Block的最后一个区块的Hash值就 ...
- 莫比乌斯反演进阶-洛谷P2257/HDU5663
学了莫比乌斯反演之后对初阶问题没有任何问题了,除法分块也码到飞起,但是稍微变形我就跪了.用瞪眼观察法观察别人题解观察到主要内容除了柿子变形之外,主要就是对于miu函数的操作求前缀和.进而了解miu函数 ...
- moviepy音视频剪辑VideoClip类to_mask方法、to_RGB、afx方法
☞ ░ 前往老猿Python博文目录 ░ moviepy音视频剪辑VideoClip类to_mask方法和to_RGB方法用于进行剪辑内容变换. 1.to_mask方法 to_mask方法返回一个由调 ...
- 第8.6节 Python类中的__new__方法深入剖析:调用父类__new__方法参数的困惑
上节<第8.5节 Python类中的__new__方法和构造方法__init__关系深入剖析:执行顺序及参数关系案例详解>通过案例详细分析了两个方法的执行顺序,不知大家是否注意到了,在上述 ...