一、文件操作模式汇总:

主模式:

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. 【ES6】export和important使用区别

    export命令 export { name1, name2, …, nameN }; export { variable1 as name1, variable2 as name2, …, name ...

  2. wordpress数据表分析

    wordpress一共是有12个表的:|wp_commentmeta || wp_comments || wp_links || wp_options || wp_postmeta || wp_pos ...

  3. 【Codeforces 212E】Restaurants

    Codeforces 212 E 题意:给一棵树,其中删去一个点,剩余的联通块们同一个联通块都得涂同一个颜色(黑或白),问黑色涂的个数有可能是哪些. 思路:肯定是背包. 假设现在删掉\(u\)这个节点 ...

  4. python:利用pymssql模块操作SQL server数据库

    python默认的数据库是 SQLlite,不过它对MySql以及SQL server的支持也可以.这篇博客,介绍下如何在Windows下安装pymssql库并进行连接使用... 环境:Windows ...

  5. iScroll.js 向上滑动异步加载数据回弹问题

    iScroll是一款用于移动设备web开发的一款插件.像缩放.下拉刷新.滑动切换等移动应用上常见的一些效果都可以轻松实现. 现在最新版本是5.X,官网这里:http://iscrolljs.com/ ...

  6. vue 项目中添加阿里巴巴矢量图

    1. 选择需要的图标,添加到购物车 2. 打开购物车,添加至我的项目 3. 打开项目列表 - 更多操作 - 编辑项目 修改FontClass/Symbol前缀,自定义一个名称,例如:v-icon-cu ...

  7. 模块的语法 import ,from...import....

    ------------------------积极的人在每一次忧患中都看到一个机会, 而消极的人则在每个机会都看到某种忧患 1. 认识模块 模块可以认为是一个py文件. 模块实际上是我们的py文件运 ...

  8. docker安装并修改Nginx镜像

    1.安装nginx镜像,命令:docker pull nginx 2.创建nginx容器,并启动,命令:docker run --name webserver -d -p 192.168.51.227 ...

  9. B. School Marks(典型贪心)

    链接 [https://codeforces.com/contest/540/problem/B] 题意 某个人有n门成绩,k门已知,剩下的他可以个瞎改,但有个要求,最后分数和不超过x,且每门成绩不超 ...

  10. Python学习第十八篇——低耦合函数设计思想

    import json 2 def greet_user(filename): 3 try: 4 with open(filename) as f_obj: 5 username = json.loa ...