目录

前言

该篇是相继上一篇6.1Python文件操作(一)之后的进阶文章。

(一)文件的定位

(1)说明

f.tell() 返回当前文件指针所在的位置。

f.seek(偏移量, 参考点) 根据参考点来偏移 偏移量个单位。

参考的:可以是0, 1, 2

0: 开头处, 参考点是正的

1:中间位置,参考点可正可负

2:结尾处:参考点是负的

注:文本文件的参考点只能是0,二进制文件三者皆可。

(2)源代码

# 打开
f = open("a.txt", "rb") # 指针的位置
r1 = f.tell()
print("前指针的位置:", r1) # 偏移指针,参考点: 文本文件只能是0,二进制文件可以是:1, 2
f.seek(-2, 2) r1 = f.tell()
print("后指针的位置:", r1)
# 读
content = f.read()
print("内容是:", content) r1 = f.tell()
print("读完指针的位置:", r1)
# 关闭
f.close()

(3)输出效果

a.txt的内容是:12345678

(二)文件的读操作

1.read()方法

(1)说明

f.readable()用于判断该文件是否可读

f.read(字节数) ,默认情况下字节 数是文件的长度。

(2)源代码

# 打开文件
f = open("b.txt", "r") # 判断是否可读
print(f.readable())
if f.readable():
# 操作, n 要读的文件长度
content = f.read(5)
print(content) # 关闭文件
f.close()

(3)输出效果

b.txt 的内容是:123456789

2.readline()方法

(1)说明

readline()方法是逐行的读写,每一次只读一行。

(2)源代码

# 打开文件
f = open("c.txt", "r") # 操作, n 要读的文件长度
content = f.readline()
print(content, end='')
content = f.readline()
print(content, end='')
content = f.readline()
print(content, end='')
# 关闭文件
f.close()

(3)输出效果

c.txt的内容是:

12

34abcdefgh

56

78

3.readlines()方法

(1)说明

readlines()方法是以行为单位来读,返回每一行为一个元素的列表 。

(2)源代码

# 打开文件
f = open("c.txt", "r") # 操作, n 要读的文件长度
content = f.readlines()
print(content)
# 关闭文件
f.close()

(3)输出效果

c.txt的内容是:

12

34abcdefgh

56

78

4.文件的遍历读法

(1)说明

打开的文件 f 本身就是一个迭代器,可以用for循环来遍历输出。与resdlines()类似,用行为单位来处理。

(2)源代码

# 打开文件
f = open("c.txt", "r") # f是一个迭代器与readlines()效果一样
for i in f:
print(i, end='') # 关闭文件
f.close()

(3)输出效果

c.txt的内容是:

12

34abcdefgh

56

78

(三)文件的写操作

1.write()方法

(1)说明

f.writable()用于判断该文件是否可选。

f.write()方法返回的是本次写入的字节数。

encoding="utf-8" 参数是指明写入的编码格式。

(2)源代码

# 打开文件
f = open("d.txt", "a", encoding="utf-8") # 判断是否可写
if f.writable():
# 写入文件
result = f.write("123456")
print("写入的字节数是:", result)
# 关闭文件
f.close()

(3)输出效果

2.writelines()方法

(1)说明

f. writelines()方法是以列表的每一个元素,写入到文件的每一行,列表的元素必须是字符串类型。

注:每一个列表的元素后面需要添加 "\n" 才换行,默认是不换行。

(2)源代码

# 打开文件
f = open("e.txt", "w", encoding="utf-8") # 写入文件
f_list = ["14\n", "28\n", "abc\n", "哈哈"]
f.writelines(f_list)
# 关闭文件
f.close()

(3)输出效果

(四)文件的关闭

(1)说明

f.close()是关闭文件,内部是把缓存区的数据,写到内存,才实现真正的保存操作。

同时也释放系统资源。

f.flush() 是立即把缓存区的数据写入到内存里区,实现及时的保存。

(2)源代码

# 打开文件
f = open("f.txt", "w") # 操作文件
f.write("123456") # 及时保存数据
f.flush() # 关闭文件
f.close()

(3)输出效果

作者:Mark

日期:2019/02/08 周五

6.2Python文件的操作(二)的更多相关文章

  1. 6.3Pytyhon文件的操作(三)

    目录 目录 前言 (一)文件的创建 (二)文件的删除 (三)文件的重命名 (四)文件的查看 (五)文件的复制 ==1.小文件的复制== ==2.大文件的复制== (六)文件的实战案例 ==1.文件的分 ...

  2. iOS 关于文件的操作

    最近做东西,遇到了使用文件方面的问题,花了点时间把文件研究了一下! 一  关于文件路径的生成 我用的方法是: -(NSString*)dataFilePath { NSArray * paths = ...

  3. 《转》Python学习(15)-对文件的操作(二)

    转自 http://www.cnblogs.com/BeginMan/p/3169020.html 一.文件系统 从系统角度来看,文件系统是对文件存储器空间进行组织和分配,负责文件存储并对存入的文件进 ...

  4. 【Python全栈笔记】05 [模块二] 19 Oct 文件的操作

    文件操作 一般步骤1. 文件打开 2. 文件操作 3. 文件关闭 1. 打开文件 使用open(文件名(绝对路径), 打开模式, 编码) 文件打开的模式有: r:  只读模式(默认) w: 只写模式 ...

  5. python中常用的文件和目录操作(二)

    一. os模块概述 python os模块提供了非常丰富的方法用来处理文件和目录 二. 导入os模块: import os 三. 常用方法 1. os.name 输出字符串表示正在使用的平台,如果是w ...

  6. Gradle系列之二 Groovy对文件的操作

    Groovy对文件的操作 对文件的遍历 假设文件的原始内容为: hello,world 这里是北京 andorid and ios are good system 第一种方法:使用 eachLine( ...

  7. find命令进阶(二):对找到的文件执行操作exec

    以下面的命令为例: find ~ -type f -name 'foo*' -exec ls -l '{}' ';' 分面两部分,第一部分: find ~ -type f -name 'foo*' 即 ...

  8. c语言文件读写操作总结

    C语言文件读写操作总结 C语言文件操作 一.标准文件的读写 1.文件的打开 fopen() 文件的打开操作表示将给用户指定的文件在内存分配一个FILE结构区,并将该结构的指针返回给用户程序,以后用户程 ...

  9. python对文件的操作

    一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法. 1.得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 2.返回指定目录下的所有文件 ...

随机推荐

  1. 首个hybird商业项目踩坑总结

    该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...

  2. 从零开始学 Web 之 移动Web(二)JD移动端网页,移动触屏事件

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  3. Mysql 用户权限管理

    1. MySQL 权限介绍 mysql中存在4个控制权限的表,分别为user表,db表,tables_priv表,columns_priv表,我当前的版本mysql 5.7.22 . mysql权限表 ...

  4. Spring Boot + Spring Cloud 构建微服务系统(七):API服务网关(Zuul)

    技术背景 前面我们通过Ribbon或Feign实现了微服务之间的调用和负载均衡,那我们的各种微服务又要如何提供给外部应用调用呢. 当然,因为是REST API接口,外部客户端直接调用各个微服务是没有问 ...

  5. Spring Boot Actuator监控应用

    微服务的特点决定了功能模块的部署是分布式的,大部分功能模块都是运行在不同的机器上,彼此通过服务调用进行交互,前后台的业务流会经过很多个微服务的处理和传递,出现了异常如何快速定位是哪个环节出现了问题? ...

  6. Java 容器源码分析之ArrayBlockingQueue和LinkedBlockingQueue

    Java中的阻塞队列接口BlockingQueue继承自Queue接口. BlockingQueue接口提供了3个添加元素方法. add:添加元素到队列里,添加成功返回true,由于容量满了添加失败会 ...

  7. 自己实现的ajax分页js

    /** * 分页 * @author chenqionghe * @param data json数据,包含totalPage,count * @param page 获取的页数 * @param o ...

  8. 【ASP.NET MVC系列】浅谈ASP.NET 程序发布过程

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  9. MySQL中的事务及读写锁实现并发访问控制

    一.并发控制中锁的概念 锁是并发控制中最核心的概念之一,在MySQL中的锁分两大类,一种是读锁,一种是写锁,读锁也可以称为共享锁(shared lock),写锁也通常称为排它锁(exclusive l ...

  10. Linux中ls命令用法

    ls 命令的含义是list显示当前目录中的文件名字.注意不加参数它显示除隐藏文件外的所有文件及目录的名字. 1)ls –a 显示当前目录中的所有文件,包含隐藏文件 命令: aijian.shi@U-a ...