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,将新文件重命名成原文件。
     







     
  • 相关阅读:
    软件过程的守护神
    C++一个简单的手柄类模板
    矿Spring入门Demo
    [Docker] Prune Old Unused Docker Containers and Images
    [Ramda] Compose lenses
    [Docker] Build Your Own Custom Docker Image
    [SCSS] Reuse Styles with the SCSS @mixin Directive
    [Angular] Router outlet events
    [Angular] Subscribing to router events
    [Angular] Enable router tracing
  • 原文地址:https://www.cnblogs.com/caoshitong/p/9482054.html
Copyright © 2011-2022 走看看