zoukankan      html  css  js  c++  java
  • python -- 文件处理

    文件处理:

    一、模式参数

    t :文本模式 (默认)。

    b :二进制模式。

    + :打开一个文件进行更新(可读可写)。

    r :以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

    rb: 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。一般用于非文本文件如图片等。

    r+ :打开一个文件用于读写。文件指针将会放在文件的开头。

    rb+ :以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。

    w :打开一个文件只用于写入。

    如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

    wb :以二进制格式打开一个文件只用于写入。

    如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。

    如果该文件不存在,创建新文件。一般用于非文本文件如图片等。

    w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

    wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,

    即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。

    a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。

    也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

    二、文件处理对象常用函数

    open():打开文件(文件路径可以是相对路径,也可以是绝对路径)。

    read():从文件的当前位置读取指定字符数,若未给定或者为负数,则读取所有内容。

    readline():从文件读取整行,包括换行符 (从当前位置到行尾)。

    readlines():读取所有行并返回列表。

    tell():返回文件指针的当前位置。

    seek():移动文件读取指针到指定位置。

    write():向文件中写入指定字符串。

    flush():刷新缓冲区,将缓冲区中的数据立刻写入文件,同时清空缓冲区。

    close():关闭一个已打开的文件。文件关闭后不能再进行读写操作。

    # --------------------------------
    # 读取文件
    # --------------------------------
    # open() 打开文件,并返回一个文件对象
    f = open('ch13_test.txt', 'r+')
    # f = open(r'D:pathch13_test.txt')
    print("文件名为:", f.name)

    # read() 从文件读取指定的字符数,若未给定或为负,则读取所有
    # 从文件头开始读取5个字符
    print(f.read(5))

    # 继续读取8个字符
    print(f.read(8))

    # readline() 从文件中读取整行
    print(f.readline()) # 从当前位置到行尾(包括换行符)
    print(f.readline(25)) # 读取指定数量的字符(如果当前行剩余字符数不够,遇换行符结束)
    print(f.readline())

    # 负数,读取整个文件的内容(从当前光标位置到文件末尾)
    print(f.read(-1))

    # 获取当前文件位置
    post = f.tell()
    print("当前文件位置为:", post)

    # seek(offset[, whence]) 移动文件读取指针到指定位置
    # 重新设置文件读取指针到开头
    f.seek(0, 0) # whence 0:文件头;1:当前位置;2:文件尾

    post = f.tell()
    print("当前文件位置为:", post)

    # readlines() 读取所有行并返回列表
    i = 1
    for line in f.readlines():
    print("{}.{}".format(i, line), end="")
    i += 1

    # close() 关闭一个已打开的文件
    f.close()


    # --------------------------------
    # 写入文件
    # --------------------------------
    # 打开一个文件进行读写(文件存在,打开;不存在,新建)
    f = open('ch13_test2.txt', 'w+')
    print("文件名为:", f.name)

    # 定位到文件的末尾
    # f.seek(0, 2)

    str1 = "If you want to get something! You have to give! You have to learn, to insist! "
    # 写入一个字符串
    f.write(str1)

    # 向文件写入一个序列字符串列表
    str_list = ["If you really think it’s hard for you. ", "Then you quit. ",
    "Once you quit. ", "Never complain. "]
    f.writelines(str_list)

    # 重新定位到文件的开始位置
    f.seek(0, 0)

    # 读取全部内容
    print(f.read())

    # 刷新缓冲区
    f.flush()
    # 关闭文件
    f.close()

    # 再次打开文件进行追加
    f = open('ch13_test2.txt', 'a+')
    f.write("Bye!")

    f.seek(0, 0)
    print(f.read())
    f.close()
  • 相关阅读:
    Netty和Akka有什么不同?
    GitHub & Bitbucket & GitLab & Coding 的对比分析
    Log4j和Log4j2的区别
    Spring中MultipartHttpServletRequest实现文件上传 生成缩略图
    JSP显示-下拉框
    jsp页面 date转化成string
    tomcat直接访问
    web项目中各种路径的获取HttpServletRequest
    遍历Map的四种方法
    mybatis There is no getter for property named 'xx' in 'class java.lang.String
  • 原文地址:https://www.cnblogs.com/Teachertao/p/11241461.html
Copyright © 2011-2022 走看看