一.写

 1.1写文件

  # w:没有文件新建文件,有文件就清空文件
  w = open('1.txt', 'w', encoding='utf-8')
  w.write('000\n')
  # 在写入大量数据,要及时处理内存空间,不然内存可能溢出导致数据丢失
  w.flush()
  w.write('111\n')
  # 最后一次flush()操作可以省略
  w.flush()
  # 一次性写入多行
  w.writelines(['222\n', '333\n'])
  w.write('444')
  # w.newlines
  w.write('555')
  # 1.将内存的的数据刷新到硬盘中;2.释放文件资源
  w.close()

1.2 文件的复制

  # 文本类型文件的复制
  r = open('source.txt', 'r', encoding='utf-8')
  w = open('target.txt', 'w', encoding='utf-8')
  for line in r: # 遍历就是一行一行读 取读文件的流
  w.write(line)
  w.flush() # 将写入到内存中的数据刷新到硬盘中
  w.close()
  r.close()

1.3 with打开 

  # 用with open语法如何处理?
  # r+: 不会创建文件的可读可写 | w+:创建清空文件的可读可写 | a+:创建不清空文件(追加)的可读可写 

  # 将文件的关闭交给with管理,当with中逻辑结束后,系统会自动释放文件
  with open('1.txt', 'r', encoding='utf-8') as r, open('source.txt', 'w', encoding='utf-8') as w:
  for line in r:
    w.write(line)
    w.flush()
    # w.close() 系统自动完成
    # r.close()

 1.4 非文本文件的复制

  # 如果复制非文本类型的数据文件?
  # 从模式采用b模式,不需要关心编码问题
  with open('source.mp4', 'rb') as f1:
  with open('target.mp4', 'wb+') as f2: # rb+ | wb | wb+ | ab | ab+
  for line in f1:
    f2.write(line)

二.模式

  r: 读
  w: 写(无创建,有清空)
  a: 追加(有创建的功能)

  t: 文本操作(默认模式) r=>rt w=>wt a=>at
  b: 非文本文件必须采用二进制模式来处理
  +: 可读可写

  r+: 不会创建文件的可读可写 | w+:创建清空文件的可读可写 | a+:创建不清空文件(追加)的可读可写
  rb: 二进制读 | wb:创建清空文件的二进制写 | ab: 创建不清空文件(追加)的二进制写
  rb+ | wb+ | ab+

三.游标操作

 方法:seek(偏移量, 偏移位置)
偏移量:移动的字节数,负数是结合模式1,2往前偏移
偏移位置:
-- 0 - 从文件开始位置开始偏移 | 1 - 从当前游标位置开始偏移 | 2 - 从文件末尾开始偏移

3.1 游标读
  with open('source.txt', 'rb') as f:
  d1 = f.read(11)
  print(d1)
  print(d1.decode('utf-8'))

 3.2 当前游标的位置
  print(f.tell())

 3.3 游标操作 - 从末尾位置开始
  f.seek(-3, 2)
  d2 = f.read()
  print(d2.decode('utf-8')) # 890

 3.4 游标操作 - 从当前位置开始
  f.seek(-3, 1)
  d2 = f.read()
  print(d2.decode('utf-8')) # 34567890

 3.5 游标操作 - 从头开始
  f.seek(3, 0)
  d2 = f.read()
  print(d2)
  print(d2.decode('utf-8')) # 好1234567890

 3.6 游标写:会覆盖书写
  with open('source.txt', 'rb+') as f:
  f.seek(11)
  # print(f.read())
  f.write(b'000')

  

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

  1. python学习day8 文件操作(深度学习)

    文件操作 (day7内容扩展) 1 文件基本操作 obj = open('路径',mode='模式',encoding='编码')obj.write()obj.read()obj.close() 2 ...

  2. python 全栈开发,Day8(文件操作)

    一.文件操作流程 文件以什么编码存储的,就以什么编码打开 参数: 1.文件路径 2.编码方式,encode 3.执行动作(打开方式):只读,只写,追加,读写,写读... 打开一个已经存在的文件 f = ...

  3. Node.js文件操作二

    前面的博客 Node.js文件操作一中主要是对文件的读写操作,其实还有文件这块还有一些其他操作. 一.验证文件path是否正确(系统是如下定义的) fs.exists = function(path, ...

  4. 【Directory】文件操作(初识文件操作二)

    上篇我们说了关于文件的创建删除更改可以通过File这个类来完成.对于目录的操作其实File类也可以完成创建删除等相关的操作.用法跟文件的方法大致相同. 那么下面就一起来看一下关于目录相关的用法. 一, ...

  5. 基于VC的声音文件操作(二)

    (二)VC的声音操作 操作声音文件,也就是将WAVE文件打开获取其中的声音数据,根据所需要的声音数据处理算法,进行相应的数学运算,然后将结果重新存储与WAVE格式的文件中去:可以使用CFILE类来实现 ...

  6. day8文件操作作业详解

    1.day8题目 1,有如下文件,a1.txt,里面的内容为: 老男孩是最好的培训机构, 全心全意为学生服务, 只为学生未来,不为牟利. 我说的都是真的.哈哈 分别完成以下的功能: a,将原文件全部读 ...

  7. Java文件操作二:File文件的方法

    一.文件的判断方法 判断方法 .boolean canExecute()判断文件是否可执行 .boolean canRead()判断文件是否可读 .boolean canWrite() 判断文件是否可 ...

  8. ObjectiveC 文件操作二

    10,文件委托,以便操作文件.头部看起来像是这样. @interface MyFileManager : NSObject @property(strong)NSFileManager *fileMa ...

  9. day8 文件操作

    文件基本操作 # 打开文件 f = open("小重山","r",encoding="utf-8") # readline 方法 只查看一行 ...

随机推荐

  1. android不知不觉偷拍他人功能实现(手机关闭依然拍照)【申明:来源于网络】

    android不知不觉偷拍他人功能实现(手机关闭依然拍照)[申明:来源于网络] 地址:http://blog.csdn.net/huangxiaoguo1/article/details/536660 ...

  2. spring 开始构造

    1,选择“org.apache.maven.archetypes:maven-archetype-webapp”骨架(模板),创建一个Web项目: 在main 目录下创建文件夹  java,  res ...

  3. JS中的三种弹出式消息提醒(警告窗口、确认窗口、信息输入窗口)的命令是什么?

    一种: <a href="javascript:if(confirm('确实要删除该内容吗?')){location='http://www.google.com'}"> ...

  4. [ovs] 编写openflow流表的文档指引

    首先,openflow流表都是使用ovs-ofctl命令进行添加的. 1. 看 ovs-ofctl 的man手册 man ovs-ofctl 或者,这个地方也有:http://www.openvswi ...

  5. android从IIS/asp.net下载apk文件

    解决步骤: 1.web.config中 <configuration>  <configSections> ...    <section name="rewr ...

  6. C#编程基础(简单概述与理解)

    1.C#变量和数据输入 C#常用到的几个数据类型: 整型:int 说明:32位有符号整数 范围:-2³¹~2³¹-1 浮点型:double 说明:64位双精度浮点数 范围:±5.0×10-­﹣³²~± ...

  7. java中equals()和==的区别

    java中的数据类型 基础数据类型 基础数据类型有byte.short.char.int.long.float.double.bool.String.除了 String 会比较地址,其它的基础类型的比 ...

  8. group_concat的使用

    1.场景 仓库使用系统实现了先进先出,给仓库的备货单原先设计如下模式: tx3表: 不同的批次分开行显示,仓库从这个备货单可以知道这个货品需要备货哪些批次,多少数量 用了几天,仓库对此备货单样式提出如 ...

  9. js回溯法计算最佳旅行线路

    假如有 A,B,C,D四个城市,他们之间的距离用 G[V][E] 表示,为 无穷大,则表示两座城市不相通 现在从计算从某一个城市出发,把所有的城市不重复旅行一次,最短路径 其中G为: (Infinit ...

  10. 测试Oracle统计信息的导出导入

    背景:有时我们会希望可以对Oracle的统计信息整体进行导出导入.比如在数据库迁移前后,希望统计信息保持不变;又比如想对统计信息重新进行收集,但是担心重新收集的结果反而引发性能问题,想先保存当前的统计 ...