zoukankan      html  css  js  c++  java
  • python基础--文件操作

    # python想要将编写的应用程序,数据永久的保存下来,必须要将它保存在硬盘中,
    # 这就涉及到应用程序操作硬件,而我们都知道,应用程序是无法直接操作硬件的,要用到计算
    # 机操作系统提供给我们的接口操作系统把复杂的硬件操作封装成简单的接口给用户/应用程序使用,
    # 其中文件就是操作系统提供给应用程序来操作硬盘虚拟概念,用户或应用程序通过操作文件,可以
    # 将自己的数据永久保存下来。
    # 操作文件的流程
    # 1 打开文件,得到文件句柄并赋值给一个变量
    # 2,通过句柄对文件进行操作,
    # 3,关闭文件
    ###强调,打开文件包含两部分资源:操作系统打开的文件和应用程序的变量
    # 操作一个文件完成时,要将这两个资源收回
    # python有垃圾回收机制,因此变量不用我们自己删除,但文件需要我们手动关闭
    f = open('a.text','w+',encoding = 'utf-8')
    f.read()
    # f.close() # 关闭文件
    # 再次强调:打开文件时需要指定编码格式,如果不指定就会按照系统默认的编码格式来打开
    # Windows默认为gbk,Linux默认utf-8。
    # 打开文件的方式
    # 变量 = open('文件路径','模式')
    # 模式
    # r,只读模式,(默认模式,文件必须存在,不存在则抛出异常)
    # w,只写模式,(不可读,不存在则创建,存在则清空内容)
    # a,只追加模式(不可读,不存在则创建,存在则只追加内容)
    # 对于非文本文件,我们只能使用b模式,“b”表示以字节的方式操作。
    # rb,wb,ab,
    # 注意:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码
    # +:表示可以同时读写某文件
    # r+ 可读可写
    # w+  可读可写
    # a+ 可读可写
    
    # 操作文件的方法
    # f.read()读取所有的内容,光标移动到文件末尾
    # f.readline()读取一行内容,光标移动到第二行首部
    # f.readlines() 读取每一行内容,存放于列表中
    
    # f.write("wang
    cong
    ") 针对文本模式的写,需要自己写换行符
    # f.write("wang
    cong
    ".encode("utf-8"))# 针对b模式的写
    # f.writelines(['333
    ','444
    ']) #文件模式
    # f.writelines([bytes('333
    ',encoding='utf-8'),'444
    '.encode('utf-8')]) #b模式
    
    f.readable() # 文件是否可读
    f.writable() # 文件是否可写
    print(f.closed) # 文件是否关闭
    print(f.encoding)  # 文件的编码格式
    f.flush() # 立即将内容保存到硬盘
    print(f.name) # 文件的名字(个人认为没什么意义)
    
    # 文件的修改:
    # 文件的数据是存放在硬盘上的,因此只能覆盖,而没有修改这种说法,
    # 我们平时所说的修改,只是模拟出来的效果
    # 1,将硬盘存放的文件内容全部加载到内存中,在内存中是可以进行修改的,
    #   修改完毕后,再由内存覆盖到硬盘,(nodepad++,word,vim)
    # 2,将硬盘存放的文件内容一行一行的读入内存,修改完毕就写入新文件,最后
    #   用新文件覆盖源文件。
    # 大文件情况下是使用第二种情况,假如一个文件有十个G,将它全部存入内存的话,
    # 先不说可不可以存放,内存较大的电脑就算能够存放,但也会影响性能。
    # 小文件就用第一种情况,若一个文本文件只有几十K,用第二种需要很多次进行访问硬盘,
    # 范文硬盘也是需要时间的啊。
  • 相关阅读:
    Leetcode Spiral Matrix
    Leetcode Sqrt(x)
    Leetcode Pow(x,n)
    Leetcode Rotate Image
    Leetcode Multiply Strings
    Leetcode Length of Last Word
    Topcoder SRM 626 DIV2 SumOfPower
    Topcoder SRM 626 DIV2 FixedDiceGameDiv2
    Leetcode Largest Rectangle in Histogram
    Leetcode Set Matrix Zeroes
  • 原文地址:https://www.cnblogs.com/cong12586/p/11352932.html
Copyright © 2011-2022 走看看