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

    1. 文件操作流程

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

    语法

    open(filename, mode)
    

    实例

    2. 文件打开模式

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

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

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

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

    • rU
    • r+U

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

    • rb
    • wb
    • ab

    3. with 语句

    为了避免打开文件后忘记关闭,可以通过管理上下文,即:

    with open('log','r') as f:
         
        ...
    

    如此方式,当with代码块执行完毕时,内部会自动关闭并释放文件资源。

    在Python 2.7 后,with又支持同时对多个文件的上下文进行管理,即:

    with open('log1') as obj1, open('log2') as obj2:
        pass
    

    4. 文件对象的方法

    f.read()

    为了读取一个文件的内容,调用 f.read(size), 这将读取一定数目的数据, 然后作为字符串或字节对象返回。

    size 是一个可选的数字类型的参数。 当 size 被忽略了或者为负, 那么该文件的所有内容都将被读取并且返回。

    f.readline()

    f.readline() 会从文件中读取单独的一行。换行符为 ' '。f.readline() 如果返回一个空字符串, 说明已经已经读取到最后一行。

     

    f.readlines()

    f.readlines() 将返回该文件中包含的所有行。

    如果设置可选参数 sizehint, 则读取指定长度的字节, 并且将这些字节按行分割。

     另一种方式是迭代一个文件对象然后读取每行:

    这个方法很简单, 但是并没有提供一个很好的控制。 因为两者的处理机制不同, 最好不要混用。

    f.write()

    f.write(string) 将 string 写入到文件中, 然后返回写入的字符数。

    f.tell()

    f.tell() 返回文件对象当前所处的位置, 它是从文件开头开始算起的字节数。

    f.seek()

    如果要改变文件当前的位置, 可以使用 f.seek(offset, from_what) 函数。

    from_what 的值, 如果是 0 表示开头, 如果是 1 表示当前位置, 2 表示文件的结尾,例如:

    • seek(x,0) : 从起始位置即文件首行首字符开始移动 x 个字符
    • seek(x,1) : 表示从当前位置往后移动x个字符
    • seek(-x,2):表示从文件的结尾往前移动x个字符

    from_what 值为默认为0,即文件开头。下面给出一个完整的例子:

    f.close()

    在文本文件中 (那些打开文件的模式下没有 b 的), 只会相对于文件起始位置进行定位。

    当你处理完一个文件后, 调用 f.close() 来关闭文件并释放系统的资源,如果尝试再调用该文件,则会抛出异常。

     

    参考资料:

    1. http://www.cnblogs.com/alex3714/articles/5717620.html

    2. http://www.w3cschool.cn/python3/python3-inputoutput.html

  • 相关阅读:
    git push 报错:missing Change-Id in commit message footer
    script命令录屏
    dubbo.xsd
    常规项目用到的jar包之maven的pom.xml
    WebSocket Demo
    对程序员有帮助的站点集锦
    java之finally的用法
    Java 中的四种引用
    字符串类型的对象与引用及字符串常量池详解
    如何掌握一项新的技能?
  • 原文地址:https://www.cnblogs.com/OldJack/p/6683089.html
Copyright © 2011-2022 走看看