zoukankan      html  css  js  c++  java
  • python之文件操作

    一.文件操作步骤

     1.打开文件

       使用open()

       文件句柄 = open('文件路径', '模式')

    2.文件操作

     打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作。

    打开文件的模式有:

    • r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】
    • w,只写模式【不可读;不存在则创建;存在则清空内容】
    • x, 只写模式【不可读;不存在则创建,存在则报错】
    • a, 追加模式【可读;   不存在则创建;存在则只追加内容】

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

    • r+, 读写【可读,可写】
    • w+,写读【可读,可写】
    • x+ ,写读【可读,可写】
    • a+, 写读【可读,可写】

     "b"表示以字节的方式操作

    • rb  或 r+b
    • wb 或 w+b
    • xb 或 w+b
    • ab 或 a+b

     注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码

    3.关闭文件

      使用close()

    补充:with语句自带使用close()方法, 这也是为了防止打开文件忘记关闭

    比如:

    with open() as f_read:#打开文件

    是不需要添加close()的。

    二.文件操作

    1.read

    文件名.read(n):读取指定个数的字符,文件从光标位置开始

    注意:python3版本读取的是字符

            python2版本读取的是字节

    在读取完第一次字符时,第二次读取从上次读取完的字符开始

    比如:

    f = open("test",mode="r",encoding="utf8")

    data = f.read(5)
    data2 = f.read(6)
    print(data)
    print(data2)
    得到的答案是
    globa
    l


    f.readline 读取一行,光标到下一行行首
    f.readlines 显示列表结果,每一个元素是一行内容

    行与字符串的拼接
    使用join用法
    文件名.join([文件名,“需要添加的字符串”])
    循环整个文件,并在一行中拼接使用for循环

    2.write
    f =open(name,mode=w) 修改文件可读权限
    文件名.write("")   覆盖文件信息

    文件名.write(" ") 换行

    f =open(name,mode="a")追加信息,原来文件信息不变

    f =open(name,mode="x")原有的文件不覆盖,会报错;没有的文件重新创建

    f=write("")把内容添加到内存,在一定时间内显示出来

    f.writelines(["11 ","22 "])写多行
    f.truncate() 截断  只能在写权限操作

    3.可读可写模式:
    
    
    r+  追加写
    默认光标在开始位置
    w+ 首先会覆盖,清空,然后再写,seek调整

    a+ 总是在最后位置添加。光标在文件最后位置
    无论光标在什么位置,一定是追加写:
    想读取内容:seek调增

    4.flush操作
    f=flush("") 直接显示,内容直接存储在硬盘上
    比如:
    进度条操作
    sys.stdout.write("")相当于print
    sys.stdout 文件
    循环打印#
    import sys
    for i in range(10):
    sys.stdout.write("#")
    sys.stdout.flush()
    import time
    time.sleep(0.5)

    显示百分比
    import sys
    for i in range(6):
    s = " %s%% %s"%(i,"?"*i)
    sys.stdout.write(s)
    sys.stdout.flush()
    import time
    time.sleep(0.5)




  • 相关阅读:
    Angular随笔第一课
    web前端面试集锦(自己搜集的,如有错误请不吝赐教)
    菜单选项卡-2中方法加载选项卡的内容
    dialog使用方法(同一页面,调用一个js代码,实现多个不同样式的弹窗)
    JAVA中对象赋值以及前拷贝,深拷贝等~~
    基类指针指向派生类对象
    JAVA中方法的参数传递(转)
    java和C++的const 和 final 的区别
    JAVA--虚函数,抽象函数,抽象类,接口
    libdash编译中遇到的问题及解决方案
  • 原文地址:https://www.cnblogs.com/asaka/p/6679275.html
Copyright © 2011-2022 走看看