zoukankan      html  css  js  c++  java
  • (二十三)Python 3 文件操作

    文件处理流程

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

    打开文件的模式有三种:

    • 只读模式(默认)
    • 只写模式(不可读,不存在则创建,存在则覆盖)
    • 追加模式(可读,不存在则创建,存在则只追加内容)
    "+"表示可同时读写某个文件:
    1. r+可读写文件(可读,可写,可追加)
    2. w+写读
    3. a+追加
    
    "U"表示在读取时,可以将
     
     
    自动转换成
    (与r或者r+模式同时使用)
    因为Windows系统的换行符为
    ,Linux系统的换行符为
    ,加上U则能自动把
    转换成
    
    1. rU
    2. r+U
    
    "b"表示处理二进制文件
    1.rb
    2.wb
    3.ab
    

    文件操作基本用法

    基本用法:open()

    file_object = open(file_name, access_mode = ‘r’, buffering = -1)
    
            open函数有很多的参数,常用的是file_name,mode和encoding
            file_name:打开的文件名,若非当前路径,需指出具体路径
            access_mode文件打开模式
            buffering的可取值有0,1,>1三个,0代表buffer关闭(只适用于二进制模式),1代表line buffer(只适用于文本模式),>1表示初始化的buffer大小; 
            encoding表示的是返回的数据采用何种编码,一般采用utf8或者gbk;
    

     

    #打开文件open()
    f = open('test.txt','r+')
    #或者with open() 这种方法操作完成后,会自动关闭不需要close()
    with open('test.txt','r') as f:
       f.read()
    
    
    #关闭文件
    f = open('test.txt','r+',encoding='utf-8')
    ret = f.read()
    print(ret)
    f.close()
    
    
    #读取文件内容(可指定每次读取字字符)
    f = open('test.txt','r+',encoding='utf-8')
    ret = f.read(8)
    print(ret)
    
    
    
    #读取数据(可指定读取字符数),存为list显示
    f = open('test.txt','r+',encoding='utf-8')
    ret = f.readlines()
    print(ret)
    f.close()
    
    
    
    #读取一行数据
    f = open('test.txt','r+',encoding='utf-8')
    ret = f.readline()
    print(ret)
    f.close()
    
    
    
    #写入文件write()参数是字符串
    f = open('test.txt','a+',encoding='utf-8')
    f.write("abc")
    ret = f.read()
    print(ret)
    f.close()
    
    
    
    #写入文件,writelines()参数是序列,比如列表,它会迭代帮你写入文件
    f = open('test.txt','a+',encoding='utf-8')
    f.writelines(["aa","bb","cc"])
    ret = f.read()
    print(ret)
    f.close()
    
    
    
    #判断文件是否是统一tty设备
    f = open('test.txt','r+',encoding='utf-8')
    ret = f.isatty()
    print(ret)  #False
    f.close()
    
    
    
    #判断是否可读(不可读则报错" No such file or directory: ")
    f = open('test.txt','r+',encoding='utf-8')
    ret = f.readable()
    print(ret)  #True
    f.close()
    
    
    
    #指定文件中指针的位置
    f = open('test.txt','r+',encoding='utf-8')
    ret = f.read(8)     #先读取8个字符
    print(ret)
    f.seek(0)           #然后把指针移动到文件开头处
    ret = f.read(8)     #在重新读取
    print(ret)
    f.close()
    
    
    
    #获取指针位置
    f = open('test.txt','r+',encoding='utf-8')
    ret = f.read(8)     #先读取8个字符
    print("pointer position:%s"%f.tell())     #查看当前指针位置
    print(ret)
    f.seek(0)           #重置指定到启始位
    print("pointer position:%s"%f.tell())     #在查看指针位置
    f.close()
    
    
    
    #截断文件数据,仅保留指定之前数据(指定字节数)
    f = open('test.txt','r+',encoding='utf-8')
    f.truncate(8)   #文件只保留前8个字节数据,文件后面数据的全部删除
    ret = f.read()
    print(ret)
    f.close()
    
    
    
    #文件描述符
    f.fileno()
    
    
    
    #刷新文件内部缓冲区
    f.flush()
    

      

     

  • 相关阅读:
    [Project Euler 603]Substring sums of prime concatenations 题解
    [Project Euler 521]Smallest prime factor 题解
    [Project Euler 520]Simbers 题解
    [Project Euler 517]A real recursion 题解
    省选刷题计划
    [十二省联考2019]春节十二响
    导航
    有用的网址
    [ZJOI2019]线段树
    [十二省联考2019]皮配
  • 原文地址:https://www.cnblogs.com/a-ant/p/11032777.html
Copyright © 2011-2022 走看看