第八节

1,文件操作

文件操作目的: 持久化,永久存储 (数据库之前 -- 文件操作就是代替数据库)

    • 1,找到文件位

      2,双击打开

      3,进行一些操作

      4,关闭文件

    • open() 打开,通过python控制操作系统进行打开

    • file 文件的位置

    • mode 默认不写就是r

    • encoding 文件的编码

    • f 文件句柄

    • 文件只能读取一次

f = open("D:\Python_s25\day08\小姐姐电话号",mode="r",encoding="utf-8")print(f.read())# 全部读取print(f.read(4))#按照字符读取print(f.readline())# 默认尾部有一个\n,读取一行print(f.readline().strip()) #\n去除print(f.readlines())# 一行一行读取,全部储存到列表中
  • 绝对路径:具体到文件的精确位置,具体到名字

  • 相对路径:具体到文件的文件夹,

  • 路径转义:r" "

  • 读字节

    字节操作 不能指定encoding编码

    f = open("timg.jpg",mode="rb")print(f.read())      # 全部读取print(f.read(3))     # 按照字节读取print(f.readline())  # 按照行进行读取print(f.readlines()) # 一行一行读取,全部储存到列表中
    • r和 r b的区别:

      1,r需要指定encoding,r b不需要

      2,r模式中的read(3) 按照字符读取,,r b模式中的read(3) 按照字节读取

    • w操作 —— 清空写,写的是文本

      1,先清空文件

      2,写入内容

      注:当模式为a和w时,有文件就使用当前文件,没有就新建一个

    ff = open("a1",mode="w",encoding="utf-8")ff.write("123")  # 写的内容必须是字符串ff = open("a1",mode="w",encoding="utf-8")ff.write("我是一个字符串串")  # 写的内容必须是字符串​ff = open("a1",mode="w",encoding="utf-8")ff.write("[1,2,3,4]\n")  # 写的内容必须是字符串ff.write('1111\n')  # 写的内容必须是字符串ff.write('2222\n')  # 写的内容必须是字符串​ff = open("a1",mode="w",encoding="utf-8")ff.write("[1,2,3,4]\n")  # 写的内容必须是字符串ff.write('1111\n')  # 写的内容必须是字符串ff.write('2222\n')  # 写的内容必须是字符串
    • w b —— 清空写,写字节

    f = open('timg.jpg',mode="rb")f1 = open("g1.jpg",mode="wb")content = f.read()f1.write(content)
  • 追加—— a

    f = open("b1",mode="a",encoding="utf-8")f.write("你好啊\n")f.write("我好啊\n")f.write("他好啊\n")f.write("大家好啊\n")3.
  1. 加操作

    r + (有点用)# 正确的操作:f = open("b1",mode="r+",encoding="utf-8")print(f.read())f.write("今天是周一")
    w+ 写读 (有点用)f = open("b1",mode="w+",encoding="utf-8")f.write("今天是周一")f.seek(0)  # 移动光标print(f.read())
    a+ 追加读  # 坑f = open("b1",mode="a+",encoding="utf-8")f.write("今天是周一")f.seek(0)  # 移动光标f.write("啊啊啊啊")print(f.read())a+ 追加读  # 坑f = open("b1",mode="a+",encoding="utf-8")f.write("今天是周一")f.seek(0)  # 移动光标f.write("啊啊啊啊")print(f.read())
    • 其他操作:

    • seek() 移动光标

    • f.seek(0,0)

    • 移动光标到文件的头部# f.seek(0,1)

    • 移动光标到当前位置# f.seek(0,2)

    • 移动光标到文件末尾# f.seek(6)

    • 光标是按照字节移动

    # 考点:import os  # 操作系统交互的接口f = open('a2',"r",encoding="utf-8")f1 = open("a1","w",encoding="utf-8")i = f1.read().replace("天","日")    # 将文件中全部内容读取 容易导致内存溢出f1.write(i)f.close()f1.close()os.rename("a2","a3")os.rename("a1","a2")​​with open("a3","r",encoding="utf-8")as f,\        open('a2',"r",encoding="utf-8")as f1:    print(f.read())    print(f1.read())# 1.自动关闭文件# 2.同一时间操作多个文件

python_0基础开始_day08的更多相关文章

  1. python_0基础学习_day02

    第二节 一,while while也称为无限循环.死循环 while 条件: 缩进 循环体 应用领域:音乐播放:单曲循环,列表循环,随机播放(也是有规律的) 登陆界面:…… 数学计算:1~100的和, ...

  2. python_0基础学习_day01

    Python是一门动态解释型的强类型定义语言 一.变量 变量命名规则 由数字.字母.下划线组成 不能以数字开头 要具有描述性 要区分大小写 禁止使用python的关键字(在pycharm中关键字明明变 ...

  3. python_0基础开始_day07

    第七节 1,基础数据类型补充 str: print(str.capitalize()) —— 首字母大写 print(str.title()) —— 每个单词的首字母大写 print(str.swap ...

  4. python_0基础开始_day06

    第六节 1.小数据池 ==,is,id ==:查看等号两边的值是否一样 a = 9b = 9print(a == b) # 返回Truec = "dog"d = "dog ...

  5. python_0基础开始_day03

    第三节 一.整形和布尔值的转换 int整型 python3: 全部都是整型 python2: 整型,长整型long 十进制转换二进制 # 将十进制的168转换为二进制 ​#得出结果 将十进制的168转 ...

  6. python_0基础开始_day05

    第五节 一.字典 python的数据结构之一 字典 —— dict 定义:dic = {"key":"dajjlad"} 作用:存储数据,大量,将数据和数据起到 ...

  7. python_0基础开始_day04

    第四节 一.列表 list 数据类型之一,存储大量的,不同类型的数据 列表中只要用逗号隔开的就是一个元素 有序可变的. 1.1列表的索引 列表和字符串一样也拥有索引,但是列表可以修改: lst = [ ...

  8. python_0基础开始_day13

    第十三节 一,匿名函数 匿名函数 == 一行函数 lambda == def == 关键字 函数体中存放的是代码 生成器体中存放的也是代码 就是yield导致函数和生成器的结果不统一 lambda x ...

  9. python_0基础开始_day12

    第十二节 一,生成器 生成器的核心:生成器的本质就是迭代器 迭代器是python自带的 生成器是程序员自己写的一种迭代器 在python中有三种方式来创建生成器: 基于函数编写 推导式方式编写 pyt ...

随机推荐

  1. Vue_(组件通讯)父子组件简单关系

    Vue组件 传送门 在Vue的组件内也可以定义组件,这种关系成为父子组件的关系 如果在一个Vue实例中定义了component-a,然后在component-a中定义了component-b,那他们的 ...

  2. Eclipse改变成炫酷黑色主题

    有一个款Eclipse插件EclipseColorTheme,其官网地址是http://eclipsecolorthemes.org/,可以直接使用大量内置的样式主题模板,如果还不能满足你自己的个性化 ...

  3. UDP和TCP浅析

    UDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议. 在选择使用协议的时候,选择UDP必须要谨慎.在网络质量令人十分不满意的环境下,UDP协议数据包丢失会比较 ...

  4. git commit 合并到指定分支

    1. 将指定的commit合并到当前分支 git cherry-pick  commit_id 2. 合并多个连续 commit 到指定分支 假设需要合并 devlop 上从 fb407a3f 到 9 ...

  5. b+tree索引在MyIsam和InnoDB的不同实现方式

    普通二叉搜索树当索引的劣势: (1)每个节点占用的空间太少,不能很好的利用磁盘的预读性 (2)数据不规律的话,很可能形成链表 (3)频繁IO b树当索引机制相比于二叉树的优势和劣势: (1)每个节点有 ...

  6. Mac os文件名大小写不敏感

    Mac os文件名大小写不敏感,但是linux是大小写敏感的. 让我们代入一个场景, 创建一个新文件,你习惯以小写字母开头,接着在其他module中import,看起来一切都正常,emmm,确实没有任 ...

  7. vue.js中$watch的用法示例

    Vue.js 提供了一个方法 watch,它用于观察Vue实例上的数据变动.对应一个对象,键是观察表达式,值是对应回调.值也可以是方法名,或者是对象,包含选项. 在实例化时为每个键调用 $watch( ...

  8. 获取sql server中自增量之scope_identity(),@@Identity,IDENT_CURRENT的区别

    http://www.lmwlove.com/ac/ID480 在sql server2005,如果要获某个表最新增加的自增量,我们都知道,可以使用COPE_IDENTITY. IDENT_CURRE ...

  9. 【css】纯css实现文字循环滚动效果

    不用js来实现. html: <div class="box"> <p class="animate"> 文字滚动的内容文字滚动的内容文 ...

  10. golang 多级json转map

    func main() { jsonStr := `{"isSchemaConforming":true,"schemaVersion":0,"unk ...