#–author:zhaozhao
#date:2020/07/30

f=open('小重山','w',encoding='utf8')  # 先清除文件内容
f.fileno()  # fileno() 方法返回一个整型的文件描述符(file descriptor FD 整型)。
f.write('lllll')  # 再写入
f.close()
  • 三种基本的操作模式 r(只可读) w(只可写) a(追加)
  • 流程:1 创建文件对象 2 调用文件方法进行操作 3 关闭文件
    如果不关闭,数据不会缓存到磁盘!

具体操作方法

# 昨夜寒蛩不住鸣。
# 惊回千里梦,已三更。
# 起来独自绕阶行。
# 人悄悄,帘外月胧明。
# 白首为功名,旧山松竹老,阻归程。
# 欲将心事付瑶琴。
# 知音少,弦断有谁听。']
f=open('小重山','r',encoding='utf8')
f.read(5)  # 汉字在这里占一个单位,光标移动。(昨夜寒蛩不)
a=f.readline()  # (住鸣。)
f.readline()  # 无论是read()还是readline(),光标都会发生位置变化(惊回千里梦,已三更。)
f.readlines()  # 读取所有内容,以列表形式返回
f.close()

实例打印文件

f=open('小重山','r',encoding='utf8')
data=f.readlines()#注意及时关闭文件
f.close()
number = 0
for i in data:number += 1if number == 6:i = ''.join([i.strip(), 'iiiii'])  # 将iiiii连接到第六行后面print(i.strip())

对于大数据文件,要用以下方式

f=open('小重山','r',encoding='utf8')
number=0
for i in f:#这是for内部将f对象做成一个迭代器,用一行去一行。number+=1if number == 6:i = ''.join([i.strip(), 'iiiii'])  # .join取代万恶的+print(i.strip())
f.close()

光标移动

f.tell()  # 取出光标位置,汉字为3个位置,字母是一个
f.read(2)  # 汉字为1个位置
f.seek(0)  # 移动光标到指定的位置

flush():将数据从缓存转移到磁盘上去

# 进度条实例
import sys,time
for i in range(30):sys.stdout.write("*")sys.stdout.flush()time.sleep(2)  # 隔两秒刷新一次
# print的flush
import sys,time
for i in range(30):print('*',end='',flush=True)time.sleep(2)

truncate():截断数据 (不能在r模式下)

  • 在w模式下:先清空,再写,再截断
  • 在a模式下:直接将指定位置后的内容截断
f=open('小重山','w',encoding='utf8')
f.truncate(5)  # 在w模式下此句无用
f.write('hello world')
f.truncate(5)
f.close()
f=open('小重山','a',encoding='utf8')
f.truncate(6)  # 汉字为3个单位
f.write('hello world')
f.truncate(9)  # 昨夜hel
f.close()

r+, w+, a+

  • r+:光标默认在0位置开始读,最后位置开始写
  • w+:先清空,再写读
  • a+:光标默认在最后位置
f=open('小重山','r+',encoding='utf8')
f.tell()  # 0
f.readline().strip()
f.write('岳飞')  # 写在最后
f.tell()  # 光标移到最后
f.seek(0)  # 光标找到0
f.close()

在固定行结尾插入字符

f_read = open('小重山','r',encoding='utf8')
f_write = open('小重山2','w',encoding='utf8')  # 没有的话自动创建
number=0
for line in f_read:number+=1if number==5:line=''.join([line.strip(),'alex\n'])f_write.write(line)
f_read.close()
f_write.close()

with不需关闭操作

with open('小重山', 'r',encoding='utf8') as f:f.readline()f.read()  # 从第二行开始读取至最后一行

with 同时管理多个文件对象

with open('小重山','r',encoding='utf8') as f_read, open('小重山2','w',encoding='utf8') as f_write:for line in f_read:f_write.write(line)
f_read.close()
f_write.close()

文件内容读取相关操作相关推荐

  1. C++文件流fstream相关操作

    C++文件流fstream相关操作 一.理解Open函数 利用fstream,使用open/close打开或创建,完成后关闭,对文件读入读出使用插入器(<<) 或析取器(>>) ...

  2. python怎么读写文件-一文看懂Python文件的读取写入操作,建议收藏-bak文件怎么打开...

    文件的读取写入操作 读取文件read() 假设我们有一个与操作文件同级的1.txt文档with open('pi_digits.txt') as file_object: contents = fil ...

  3. linux怎么查看文件内容并显示行号,Linux文件内容查看相关命令

    原标题:Linux文件内容查看相关命令 Linux系统中使用以下命令来查看文件的内容: cat.tac.nl.more.less.head.tail 你可以使用 man [命令]来查看各个命令的使用文 ...

  4. Python文件内容读取成绩单,计算出平均分并且写入原文件存储

    python文件内容读取成绩单,计算出平均分并且写入原文件存储 文件内容如下:( 格式参考下表, 内容自己定义) 姓名 语文 数学 英语 aaa 80 70 65 bbb 85 88 90 ccc 7 ...

  5. .rpt文件内容读取java_Java快速入门(26) 文件和IO操作

    点击上方蓝色"小白轻松学编程",添加"关注" (*平遥古城,图片来源于网络) 文章目录 1 前言2 流3 字节流4 字符流5 标准流6 读取文件7 File和I ...

  6. .rpt文件内容读取java_linux第二天|shell文件/文件夹操作

    shell 文件/文件夹的命令 文件的操作可以分为:新建,移动,复制,删除,读取. 文件夹的操作可以分为:创建,删除,复制,移动. 这两者有部分命令是相通的,为了减少记忆的负担,这里只说一种能够共用的 ...

  7. java读取修改文件内容_Java对本地文件内容读取、修改、删除的操作

    import org.apache.commons.lang.StringUtils; import java.io.*; import java.util.HashMap; import java. ...

  8. linux命令看文件内容,Linux文件内容查看相关命令

    1.more命令 在Linux中,more命令是一个基于vi编辑器的文本过滤器,它能以全屏的方式按页显示文本文件的内容,more里面内置了一些快捷键. (1)命令语法 more(选项)(参数) (2) ...

  9. 读取远程服务器上文件内容,读取远程服务器上的文件

    读取远程服务器上的文件 内容精选 换一换 已成功登录Java性能分析.待安装Guardian的服务器已开启sshd.待安装Guardian的服务器已安装JRE,JRE版本要求为Huawei JDK 8 ...

最新文章

  1. c语言规定预处理命令必须以什么开头,C语言规定预处理命令必须以___________开头...
  2. 【词汇】ab-前缀、al-后缀、norm-词根
  3. 硬盘安装Windows 7和Ubuntu 10.04双系统
  4. 1930年的上海是什么样
  5. 关于realarm S5P4418的u-boot显示内存大小问题解决方法
  6. Spring boot实现异步
  7. 并行计算机架构_计算机科学组织| 并行处理
  8. defaultvalue默认显示 请选择_使用Jenkins Git参数实现分支标签动态选择
  9. java8 groupingby_Java8 教程第五章之Streams Collectors groupingBy
  10. ubuntu12.04下安装NVIDIA驱动
  11. Activity 生命周期及其栈管理方式
  12. 2020年这些正则应该被收藏(更新, 63条)
  13. 计算机动画推导,AE表达式实现逼真弹性动画
  14. 关于KERNEL_SECURITY_CHECK_FAILURE蓝屏(BSOD)0x00000139错误解决思路
  15. 储备物资管理局计算机,国考报名税务过审居首 储备物资管理局最抢手
  16. PHP实现阿拉伯数字转中文大写
  17. 时间序列数据集:UCR Time Series Classification Archive【共128个数据集】
  18. VB、Office与VBA
  19. 准到吓人的手相,教你看手相掌握将来
  20. 超级玛丽游戏python实现

热门文章

  1. C++——Hook教程[1]:虚函数表(VMT)Hook
  2. mc服务器怎么修改浮空字,如何制作悬浮字?我的世界教程 | 我的世界 | MC世界侠...
  3. Context R-CNN一种基于注意力机制的视频检测算法
  4. 对于Android虚拟机启动失败“The emulator process for AVD Nexus_5X_API_30 was killed”的解决方案
  5. 阿里云服务器一直提示安全事件如何解决
  6. 计算机毕业设计ssm流浪动物管理系统q5cx7系统+程序+源码+lw+远程部署
  7. Android 问题:Installation failed due to: ‘Invalid File:
  8. 求职秘籍-如何准备面试?
  9. 八年老Android开发谈:垃圾中的战斗机,offer都发了,差点无缘Offer
  10. 根据身高体重计算某个人的BMI值