从零开始的Python学习Episode 7——文件基本操作
文件基本操作
一、打开文件
f = open('11','r')#open('file path','mode')
创建一个文件对象
文件有多种打开模式:
1. 'r':新建一个文件对象以只读方式打开文件。读文件的指针将会放在文件的开头。
f = open('11','r')#open('file path',mode')
data = f.read()
print(data)
f.close()
#输出123456789
2.‘w’:新建一个只用于写文件的文件对象
f = open('11','w')
f.write('12345')
f.close()
#文件中内容会变成12345
如果该文件已存在则打开文件,并从开头开始编辑,原有内容会被删除。如果该文件不存在,创建新文件并写入内容。
3. 'a': 新建一个只用于追加内容的文件对象。
f = open('11','a')
f.write('\n12345655')
f.close()
文件的末尾会加上要输入的内容。
如果该文件已存在,文件指针将会放在文件的结尾,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
4. 'r+': 新建一个只用于读写的文件对象。文件指针将会放在文件的开头,但写入内容会写到文件内容末尾。
f = open('11', 'r+')
a = f.readline()
f.write('789')
print(a)
f.close()
#输出123
#文件末尾加上了789
5.'w+':新建一个只用于读写的文件对象。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
6. 'a+': 新建一个只用于读写的文件对象。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。读文件时从文件内容的末尾读,因为文件指针放在文件的结尾。
二、内置方法
1. readline()
f = open('11','r')
print(f.readline())
f.close()
#文件内容:
#123
#1234
#12345
#123456
#输出:123
按行输出。每调用一次输出一行。
2. readlines()
f = open('11','r')
print(f.readlines())
f.close()
#输出['123\n', '1234\n', '12345\n', '123456']
输出所有行,以列表形式返回。
3.flush()方法
可以用来刷新缓冲区,将缓冲区中的数据立刻写入文件,同时清空缓冲区,不用被动地等待输出缓冲区写入。一般情况下,文件关闭后会自动刷新缓冲区,但有时你需要在关闭前刷新它,这时就可以使用 flush() 方法。例如:进度条
import sys,time
for i in range(30):
sys.stdout.write('*')
sys.stdout.flush()
time.sleep(0.1)
4.truncate()方法
f = open('11', 'a')
f.truncate(2)
#文件内容
#123
#1234
#12345
#123456
#输出12
用于截断文件,如果指定了可选参数 size,则表示保留前size 个字节,删除 size 后面的所有字符。 如果没有指定 size,则从当前位置起截断。
5.seek()方法
seek(offset ,whence) 方法改变当前文件的位置。
offset变量表示要移动的字节数。whence变量表示要从哪个位置开始偏移.
如果whence被设为0,表示将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置。
6.with 关键字
with open('11','r') as f:
a = f.readline()
print(a)
使用了with之后,可以不用写close(),默认在with语句执行完之后关闭文件。
7.tell() 方法
返回文件的当前位置,即文件指针当前位置。
with open('11','r+') as f:
a = f.readline(1)
print(a)
print(f.tell())
从零开始的Python学习Episode 7——文件基本操作的更多相关文章
- 从零开始的Python学习Episode 16——模块
一.模块 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相 ...
- 从零开始的Python学习Episode 13——常用模块
模块 一.time模块 时间戳(timestamp) :时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量. 元组(struct_time) :struct_time元组共有9 ...
- 从零开始的Python学习Episode 23——进程
---恢复内容开始--- 进程 由于GIL的存在,python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程.Python提供了非常好用 ...
- 从零开始的Python学习Episode 22——多线程
多线程 线程 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务. ...
- 从零开始的Python学习Episode 21——socket基础
socket基础 网络通信要素: A:IP地址 (1) 用来标识网络上一台独立的主机 (2) IP地址 = 网络地址 + 主机地址(网络号:用于识别主机所在的网络/网段.主机号:用于识别该网络中的 ...
- 从零开始的Python学习Episode 20——面向对象(3)
面向对象之封装 封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别:将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体. 隐藏 在python中用双下划线开 ...
- 从零开始的Python学习Episode 19——面向对象(2)
面向对象之继承 继承是一种创建新类的方式,新建的类可以继承一个或多个父类(python支持多继承),父类又可称 为基类或超类,新建的类称为派生类或子类. 子类会“”遗传”父类的属性,从而解决代码重用问 ...
- 从零开始的Python学习Episode 17——序列化
序列化 我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语 言中也被称之为serialization,marshalling,flattenin ...
- 从零开始的Python学习Episode 14——日志操作
日志操作 一.logging模块 %(message)s 日志信息 %(levelno)s 日志级别 datefmt 设置时间格式 filename 设置日志保存的路径 level 设置日志记录的级别 ...
随机推荐
- java中的序列化问题
序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化,将数据分解成字节流,以便存储在文件中或在网络上传输.可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间.序列化是 ...
- OpenID Connect Core 1.0(四)使用授权码流验证(上)
3.1 使用授权码流验证(Authentication using the Authorization Code Flow) 本节描述如何使用授权码流执行验证.当使用授权码流时,会从令牌终结点返回的所 ...
- Knowledge-Reserve
Knowledge-Reserve ComputerOperatingSystem 编译 静态库&动态库(Linux) 静态链接&动态链接 内存 内联函数&宏 Static&a ...
- js基础(闭包)
1. "闭包就是跨作用域访问变量." [示例一] var name = 'wangxi' function user () { // var name = 'wangxi' fun ...
- MySQL+MyCat分库分表 读写分离配置
一. MySQL+MyCat分库分表 1 MyCat简介 java编写的数据库中间件 Mycat运行环境需要JDK. Mycat是中间件.运行在代码应用和MySQL数据库之间的应用. 前身 : cor ...
- 将Windows 7安装到移动固态硬盘(U盘)
由于工作的原因,有时需要用两台电脑工作,而搞开发的人大多又是追求计算机性能的人,所以笔记本电脑自然不轻,更何况两台. 两台电脑折磨我半年多,终于下定决心将个系统安装到移动固态硬盘中,背一台无硬盘电脑加 ...
- python学习笔记(一)学习资料记录
相关资料网站 1. python3简明教程 适合新学者,因为可以在线操作,并且校验结果,同时还有考试系统.比较基础 2. python数据分析数据科学中文英文工具书籍下载 免费的中英文数据的PDF下载 ...
- java-spark的各种常用算子的写法
通常写spark的程序用scala比较方便,毕竟spark的源码就是用scala写的.然而,目前java开发者特别多,尤其进行数据对接.上线服务的时候,这时候,就需要掌握一些spark在java中的使 ...
- T脚本语言学习记录-工具(一)
1.set & unset %set a Hello ;#定义变量 a 并赋值 =>Hello %puts $a ;#输出变量值 =>Hello %set a “Test Tcl” ...
- 记账APP(5)
今天做了成品,也在抖音上发了视频 目前会的只是一点点都算不上,离入门还远,所以,加油吧,小子