zoukankan      html  css  js  c++  java
  • python 文件(file)操作

    操作文件的一般流程有:

    打开文件、文件处理、关闭文件

    开开文件的模式有:

    • r,只读模式(默认)。
    • w,只写模式。【不可读;不存在则创建;存在则删除内容;】
    • a,追加模式。【不可读; 不存在则创建;存在则只追加内容;】
    "+" 表示可以同时读写某个文件
    • r+,可读写文件。【可读;可写】 不能创建,覆盖相同的字符写入
    • w+,写读。【文件不存在创建,存在先清空后写入】
    • a+,追加读写。【可读,追加写,默认光标在最后,读取可以用f.seek(0)移动到文件开头进行读取,但是写不能,写的时候光标会自动移动到最后面进行写】
     
    "U"表示在读取时,可以将 自动转换成 (与 r 或 r+ 模式同使用)
    • rU
    • r+U

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

    • rb
    • wb
    • ab

    基本操作:

    f = open(filename, 'r', encording='utf-8')
    first_line = f.readline()
    rest_data = f.read()  # 读取剩下的所有内容,文件大时不要用
    f.write('lastline')
    f.close             # 关闭文件

    所有操作:

    f.readlines()   # 返回一个列表,列表的元素为每行的字符,包括换行符
    f.tell()        # 返回当前光标所在的字符个数(从最前面开始)
    f.seek(0)       # “光标” 跳转到文件开头
    f.truncate(5)    # 截断操作,不管光标的当前位置,从文件开始位置数5个字符后去掉后面的字符,必须用r+权限
    f.fileno()      # 文件标识符
    f.read()        # 注意,不一定能全读回来
    f.write(str)    # 写入字符串
    f.readinto()    # 不要用
    f.readall()     
    
    f.readable()    # 是否可读
    f.seekable()    # 光标是否可跳转
    f.writeable()   # 是否可写
     
    with 语句,为了避免打开文件后忘记关闭,可以通过管理上下文
    with open(filename1, 'r', encoding='utf-8') as f1,
            open(filename2, 'w', encoding='utf-8') as f2,
            pass

    循环文件内容:

    # 循环文件,低效率,内存需要保留所有数据
    for index, line in enumerate(f.readlines()):
        print(index,line)
    
    # 循环文件,高效率, 内存只保留一行数据
    for line in f
        print(line)
  • 相关阅读:
    HDU1565_方格取数(1)
    HDU3046_Pleasant sheep and big big wolf
    HDU4183_Pahom on Water
    「zoj2314」Reactor Cooling (无源汇上下界可行流)
    [ACM-ICPC 2018 沈阳网络赛] G. Spare Tire (思维+容斥)
    [ACM-ICPC 2018 沈阳网络赛] D. Made In Heaven (k短路模板)
    lct,半平面交,线性基,k短路
    P3950 部落冲突 (LCT暴力)
    P4219 [BJOI2014]大融合 ( LCT维护虚实子树size )
    P3203 [HNOI2010]弹飞绵羊(LCT维护链的size + 思维)
  • 原文地址:https://www.cnblogs.com/tjuyuan/p/6796349.html
Copyright © 2011-2022 走看看