zoukankan      html  css  js  c++  java
  • 菜鸟python---文件操作

    # 文件操作
    "萝莉小姐姐电话号"

    1.找到文件的位置
    2.双击打开
    3.进行一些操作 # r - read(读) w - write(写) a - 追加
    rb -- (读字节) wb ab r+ w+ a+
    4.关闭文件

    open() # 打开 open通过python控制操作系统进行打开文件
    file 文件的位置
    mode 默认不写就是r
    encoding 文件的编码
    f 文件句柄

    文件只能读取一次

    读操作:
    f = open("D:Python_s25day08小姐姐电话号",mode="r",encoding="utf-8")
    print(f.read()) # 全部读取
    print(f.read(3)) # 按照字符读取

    print(f.readline()) # 默认尾部有一个
    print(f.readline().strip()) # 读取一行
    print(f.readline().strip()) # 将 去除

    print(f.readlines()) #一行一行读取,全部存储在列表中

    绝对路径
    f = open(r"D:Python_s25day08 1",mode="r",encoding="utf-8")
    print(f.read())

    相对路径
    f = open("t1",mode="r",encoding="utf-8")
    print(f.read())


    路径转义:
    1."D:\Python_s25\day08\t1"
    2.r"D:Python_s25day08 1" -- 推荐使用

    路径:
    1.绝对路径 : 从磁盘(C盘)开始查找
    2.相对路径 : 相对于某个文件进行查找

    字节操作 不能指定encoding编码

    f = open("timg.jpg",mode="rb")
    print(f.read()) # 全部读取
    print(f.read(3)) # 按照字节读取
    print(f.readline()) # 按照行进行读取
    print(f.readlines())

    r和 rb的区别:
    1.r需要指定encoding,rb不需要
    2.r模式中的read(3) 按照字符读取, rb模式中的read(3) 按照字节读取

    read 和 readlines 如果文件较大时,会出现内存溢出
    解决方案:

    面试题:
    当文件交大时,使用for循环进行读取
    f = open('t1',mode="r",encoding="utf-8")
    for i in f:
    print(i.strip())

    写操作:
    w操作: -- 清空写(写的是文本)
    1.先清空文件(打开文件时清空)
    2.写入内容

    当模式为 w 和 a 时,有文件就是用当前文件,没有文件就创建一个文件

    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] ") # 写的内容必须是字符串
    ff.write('1111 ') # 写的内容必须是字符串
    ff.write('2222 ') # 写的内容必须是字符串

    ff = open("a1",mode="w",encoding="utf-8")
    ff.write("[1,2,3,4] ") # 写的内容必须是字符串
    ff.write('1111 ') # 写的内容必须是字符串
    ff.write('2222 ') # 写的内容必须是字符串

    wb -- 清空写(写字节)
    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("你好啊 ")
    f.write("我好啊 ")
    f.write("他好啊 ")
    f.write("大家好啊 ")

    ab -- 追加写(字节)
  • 相关阅读:
    leetcode题解:Search in Rotated Sorted Array(旋转排序数组查找)
    leetcode 题解:Remove Duplicates from Sorted Array II(已排序数组去三次及以上重复元素)
    leetcode 题解:Remove Duplicates from Sorted Array(已排序数组去重)
    leetcode题解:Tree Level Order Traversal II (二叉树的层序遍历 2)
    leetcode 题解:Binary Tree Level Order Traversal (二叉树的层序遍历)
    c++ STL:队列queue、优先队列priority queue 的使用
    leetcode题解:Binary Tree Postorder Traversal (二叉树的后序遍历)
    算术表达式解析(第三版)词法分析版
    经典算法:牛顿迭代法求平方根
    进入游戏行业1年的总结
  • 原文地址:https://www.cnblogs.com/veryFuelong/p/13357031.html
Copyright © 2011-2022 走看看