一、文件操作模式汇总:

主模式:

r:读模式

w:写模式(无创建,有清空)

a:追加(有创建的功能)

x:写,必须自己创建文件,否则报错

从模式:

t:文本操作(默认模式)r >rt,w>wt,a>at

b:非文本文件采用二进制模式来处理   (rb:二进制读 |wb:创建清空文件的二进制写 |ab:创建不清空文件(追加)的二进制写)

+:可读可写

r+:不会创建文件的可读可写

w+:创建清空文件的可读可写

a+:创建不清空文件(追加)的可读可写,在原数据后追加写入新数据

二、文件的复制:先读再写

1、 例: 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()

2、用with open 处理

# r+: 不会创建文件的可读可写 | w+:创建清空文件的可读可写 | a+:创建不清空文件(追加)的可读可写
          with open('source.txt', 'r', encoding='utf-8') as f1:
                with open('target.txt', 'a+', encoding='utf-8') as f2:
                       for line in f1:
                       f2.write(line)

3、复制非文本类型的数据文件?

# 从模式采用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)

三、游标操作:必须在b模式下操作

方法:seek(偏移量,偏移位置)

偏移量:移动的字节数,负数是结合模式1,2往前移

偏移位置:0:从文件开始位置开始偏移

1:从当前游标位置开始偏移

2:从文件末尾开始偏移

例:# 游标读

with open('source.txt', 'rb') as f:
                    d1 = f.read(11)
                     print(d1)

#当前游标位置

print(f.tell())

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

#  游标操作 - 从当前位置开始
                   f.seek(-3, 1)
                   d2 = f.read()

# 游标操作 - 从头开始
                      f.seek(3, 0)
                     d2 = f.read()
                      print(d2)

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

f.write(b'000')

DAY08、文件操作的更多相关文章

  1. day08——文件操作

    day08 文件操作: open() :打开 f (文件句柄)= open("文件的路径(文件放的位置)",mode="操作文件的模式",encoding=&q ...

  2. day08文件操作的三步骤,基础的读,基础的写,with...open语法,文件的操作模式,文件的操作编码问题,文件的复制,游标操作

    复习 ''' 类型转换 1.数字类型:int() | bool() | float() 2.str与int:int('10') | int('-10') | int('0') | float('-.5 ...

  3. day08 文件操作

    1.三种字符串: (1)u'' 普通字符串 ---> u'abc' ---> 默认的文本方式,以字符作为文本的输出方式 (2)b'' 二进制字符串 ---> b'ASCII码' -- ...

  4. day08文件操作

    今日内容 文件操作 内容详细 1.打开文件 1.open("作业讲解.py",mode="r",encoding="utf-8") 2.文件 ...

  5. Python集训营45天—Day08 (文件操作)

    目录 1. 文件操作介绍 2. 文件的读写 2.1 文本文件 2.2 二进制文件 2.3 JSON文件 3. 文件的定位,重命名和删除 4. 文件夹的相关操作 1. 文件操作介绍 大家应该听说过一句话 ...

  6. python day08 文件操作

    2019.4.8 S21 day08笔记总结 一.进制 对于计算机而言无论是文件存储 / 网络传输数据本质上都是:二进制(010101010101),如:电脑上存储视频/图片/文件都是二进制: QQ/ ...

  7. Python:Day08 文件操作

    能调用方法的一定是对象! 文件的操作分为三步: 1.打开文件 2.操作文件 3.关闭文件 f= open('小重山','r',encoding='utf8') #以读的方式打开一个文件,如果文件不存在 ...

  8. 铁乐学Python_day08_文件操作

    一.[基本的文件操作] 参数: 1.文件路径: 2.编码方式: 3.执行动作:(打开方式)只读,只写,追加,读写,写读! #1. 打开文件,得到文件句柄并赋值给一个变量 f = open('E:/Py ...

  9. day08(字符编码,字符与字节,文件操作)

    一,复习 ''' 类型转换 1.数字类型:int() | bool() | float() 2.str与int: int('10') | int('-10') | int('0') | float(' ...

  10. day08 python文件操作

    day08 python   一.文件操作     1.文件操作的函数         open(文件名, mode=模式, encoding=字符集)       2.模式: r, w, a, r+ ...

随机推荐

  1. 关于connect by rownum与connect by leve

    http://www.itpub.net/forum.php?mod=viewthread&tid=1570306 http://www.itpub.net/forum.php?mod=vie ...

  2. sqlachemy 获取新创建对象的id,flush与commit

    for account_info in valid_account_detail: try: account = account_info.get('account') password = acco ...

  3. 浅谈SQL注入

    先看一个sql语句: select * from admin where username='(此处为用户输入的数据)'; 在没有任何过滤的情况下,如果用户输入:' or 1=1 -- 这条语句就为: ...

  4. EF Core中,通过实体类向SQL Server数据库表中插入数据后,实体对象是如何得到数据库表中的默认值的

    我们使用EF Core的实体类向SQL Server数据库表中插入数据后,如果数据库表中有自增列或默认值列,那么EF Core的实体对象也会返回插入到数据库表中的默认值. 下面我们通过例子来展示,EF ...

  5. 【原创】惊!史上最全的select加锁分析(Mysql)

    引言 大家在面试中有没遇到面试官问你下面六句Sql的区别呢 select * from table where id = ? select * from table where id < ? s ...

  6. ML.NET 示例:多类分类之鸢尾花分类

    写在前面 准备近期将微软的machinelearning-samples翻译成中文,水平有限,如有错漏,请大家多多指正. 如果有朋友对此感兴趣,可以加入我:https://github.com/fei ...

  7. 如何向微软 Docs 和本地化社区提交翻译贡献

    Docs (docs.microsoft.com)是微软新版的文档网站,重新规划了各项技术栈的文档结构,看起来比 MSDN 可读性更好.虽然 Docs 提供了各种语言的版本,但大多是机器翻译,某些中文 ...

  8. Python全栈开发之路 【第五篇】:Python基础之函数进阶(装饰器、生成器&迭代器)

    本节内容 一.名称空间 又名name space,就是存放名字的地方.举例说明,若变量x=1,1存放于内存中,那名字x存放在哪里呢?名称空间正是存放名字x与1绑定关系的地方. 名称空间共3种,分别如下 ...

  9. 海康威视笔试(C++)

    1. select和epoll的区别 2.服务器并发量之高性能服务器设计 3.SQL关键字 4.TCP乱序和重传的问题 5.c++对象内存分配问题 6.c++多线程 join的用法: Thread类的 ...

  10. sso单点登录系统(解决session共享)

    场景:假设一个用户将自己的登录信息提交到后台,如果session保存的信息分布在多台机器上,并且不共享,那么可能导致用户的登录信息出现短暂的丢失,为什么这样讲,因为用户访问服务器中间还要经过负载均衡服 ...