zoukankan      html  css  js  c++  java
  • 文件的基本操作

    1.文件操作基本流程:

    计算机系统分为:计算机硬件,操作系统,应用程序三部分。

    我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众所周知,应用程序是无法直接操作硬件的,这就用到了操作系统。操作系统把复杂的硬件操作封装成简单的接口给用户/应用程序使用,其中文件就是操作系统提供给应用程序来操作硬盘虚拟概念,用户或应用程序通过操作文件,可以将自己的数据永久保存下来。

    有了文件的概念,我们无需再去考虑操作硬盘的细节,只需要关注操作文件的流程:

    #1. 打开文件,得到文件句柄并赋值给一个变量
    f=open('a.txt','r',encoding='utf-8') #默认打开模式就为r
    #2. 通过句柄对文件进行操作
    data=f.read()
    #3. 关闭文件
    f.close()
    三要素:文件路径,编码方式,操作模式。
    open() python的内置函数(内部调用的是windows的系统命令),

    1,打开文件,产生文件句柄。
    2,对文件句柄进行操作。
    3,关闭文件句柄。
    #读
    #r
    对于r读模式mode可以默认不写
    (1)全部读取
    f = open('文件操作1',encoding='utf-8')
    content = f.read()
    print(content)
    f.close()

     (2)按照字符读取

    f = open('文件操作2',encoding='utf-8',mode='r')
    content = f.read(10)
    print(content)
    f.close()

        (3)按行去读

    f = open('文件操作3',encoding='utf-8',mode='r')
    f.readline()
    f.readline()
    f.readline()
    content = f.readline()
    print(content)
    f.close()

       (4)按行读取,返回一个list

    f = open('文件操作4',encoding='utf-8',mode='r')
    content = f.readlines()
    print(content)
    f.close()

       (5)for  循环

    f = open('文件操作5',encoding='utf-8',mode='r')
    for line in f:
        print(line)
    f.close()

    4.rb模式;非文本文件,bytes类型

    f = open('文件操作6',mode='rb')
    content = f.read()
    print(content)
    f.close()

    rb模式按照字节读取

    f = open('文件操作6',mode='rb')
    content = f.read(10)
    print(content)
    f.close()

    r+模式,先读后追加

    f = open('文件操作7',encoding='utf-8',mode='r+')
    content = f.read()
    print(content)
    f.write('22313')
    f.close()

    *不读直接写会导致直接从开始覆盖

    5.写

    #w模式

    #没有文件创建文件也要写

    #有文件,先清空,后写入

    f = open('文件操作8',encoding='utf-8',mode='w')
    f.write('6131')
    f.close()

    #w+模式

    f = open('文件操作8',encoding='utf-8',mode='w')
    f.write('6131')
    f.seek(1)
    print(f.read())
    f.close()

    #追加

    6.a模式

    #没有文件创建文件也要写

    #有文件直接在文件的最后面添加

    7.其他方法

    #readable,writable,seek,tell

    # seek 调整光标到开始,seek(0)  调整光标到结尾seek(0,2) *****
    f = open('文件操作9',encoding='utf-8',mode='r')
    f.seek(20)#按字节去移动光标
    content = f.read()
    print(content)
    f.close()
    # f = open('文件操作1',encoding='utf-8')
    # if f.writable():
    #     content = f.read()
    #     print(content)
    # f.close()

    #truncate

    # truncate 要在writable模式下进行截取。
    # r+ a+ ..不能在w模式下使用,对原文件进行截取
    # f = open('文件操作1',encoding='utf-8',mode='r+')
    # print(f.truncate(6))
    # f.close()
    #with open
    (1)主动关闭文件句柄
    (2)开启多个文件句柄
    # 文件的改的操作

    # 1,以读的模式打开原文件,产生一个文件句柄f1.
    # 2,以写的模式创建一个新文件,产生一个文件句柄f2.
    # 3,读取原文件内容,进行修改,并将修改后的写入新文件。
    # 4,将原文件删除。
    # 5,将新文件重命名成原文件。
     







     
  • 相关阅读:
    Fidder4 顶部提示 “The system proxy was changed,click to reenable fiddler capture”。
    redis 哨兵 sentinel master slave 连接建立过程
    虚拟点赞浏览功能的大数据量测试
    python基础练习题(题目 字母识词)
    python基础练习题(题目 回文数)
    python基础练习题(题目 递归求等差数列)
    python基础练习题(题目 递归输出)
    python基础练习题(题目 递归求阶乘)
    python基础练习题(题目 阶乘求和)
    python基础练习题(题目 斐波那契数列II)
  • 原文地址:https://www.cnblogs.com/caoshitong/p/9482054.html
Copyright © 2011-2022 走看看