zoukankan      html  css  js  c++  java
  • 6、Python之文件操作

    一、文件操作流程

    1. 打开文件,得到文件句柄并赋值给一个变量
    2. 通过句柄对文件进行操作
    3. 关闭文件

    1、读文件

     1 file = open("data.txt","r",encoding='utf-8') #data.txt 文件 r-只读 utf-8编码规则 file为文件句柄
     2 #f = file.read()  #将文件所有数据读到内存中地址指向f
     3 #f = file.readline() #读取文件一行
     4 #f = file.readlines() #读取文件所有行并将其转为列表,每行表示列表的一个元素
     5 p = file.tell() #显示当前文件坐标显示的位置
     6 p = file.seek(3) #将文件坐标移到第三个位置
     7 
     8 print(file.readable()) #判断文件是否可读
     9 print(file.readline())
    10 
    11 file.close() #关闭文件

    2、写文件

    1 file = open("data.txt","w",encoding='utf-8') #data.txt 文件 w-只写 utf-8编码规则 file为文件句柄
    2 file.write("我在写文件,如果文件不存在就新建一个文件,如果存在就清楚之前的文件内容,然后写入!
    表示换行")
    3 print(file.writable()) #判断文件是否可读
    4 file.flush()  #刷新缓冲区
    5 file.writelines("
    我表示像文件中写入一行")
    6 file.close() #关闭文件

    代码4file.flush()表示刷新缓冲区,我们在写文件的时候一般不是直接写到磁盘上的,而是先写入内存的一个缓冲区中,等缓冲区满了,再将数据一次性写入磁盘,file.flush()方法就是将缓冲区中的数据写入磁盘而不需要等待缓冲区是否满。

    3、文件追加内容

    1 file = open("data.txt","a",encoding='utf-8') #data.txt 文件 a-追加 utf-8编码规则 file为文件句柄
    2 file.write("因为文件模式为a,所以我会将这行内容追加到文件的最后位置")
    3 print(file.tell()) #因为文件模式为a(追加模式),所以文件下标会默认移到文件最后位置
    4 file.truncate(99)#从文件起始位置开始截取长度为100个字节
    5 print(file.fileno()) #打印文件编号
    6 file.close() #关闭文件

    3、with语句

        我们有时候在打开文件的时候会忘记关闭,这时候我们使用with关键字来打开文件即可,语法如下:

    1 with open("data.txt","r",encoding='utf-8') as f:   #打开单个文件
    2     pass
    3 with open('log1') as obj1, open('log2') as obj2: #打开多个文件的语法
    4     pass

    4、打开文件的模式有:

    • r,只读模式(默认)。
    • w,只写模式。【不可读;不存在则创建;存在则删除内容;】
    • a,追加模式。【可读;   不存在则创建;存在则只追加内容;】

    "+" 表示可以同时读写某个文件

    • r+,可读写文件。【可读;可写;可追加】
    • w+,写读
    • a+,同a

    "U"表示在读取时,可以将 自动转换成 (与 r 或 r+ 模式同使用)

    • rU
    • r+U

    "b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)

    • rb
    • wb
    • ab
  • 相关阅读:
    macbook 无声音解决方案
    webapck dev server代理请求 json截断问题
    百度卫星地图开启
    服务器 nginx配置 防止其他域名绑定自己的服务器
    记一次nginx php配置的心路历程
    遇到npm报错read ECONNRESET怎么办
    运行svn tortoiseSvn cleanup 命令失败的解决办法
    svn add 命令 递归目录下所有文件
    m4出现Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib."
    Ubuntu下安装GCC,mpc、mpfr、gmp
  • 原文地址:https://www.cnblogs.com/win0211/p/8350935.html
Copyright © 2011-2022 走看看