• python学习笔记(11)--文件与数据格式化


    文件的概念:

    文件是数据的抽象和集合,是存储在辅助存储器上的数据序列,文件是数据存储的一种形式,文件的展现形态,文本文件和二进制文件。

    文本文件输出:

    f.txt文件保存:“我是中国人”

    >>> tf=open("d:/python_test/f.txt", "rt")
    >>> tf
    <_io.TextIOWrapper name='d:/python_test/f.txt' mode='rt' encoding='cp936'>
    >>> print(tf.readline())
    我是中国人
    >>> tf.close
    <built-in method close of _io.TextIOWrapper object at 0x0000000002F81DC8>

    二进制文件输出:

    >>> bf=open("d:/python_test/f.txt", "rb")
    >>> print(bf.readline())
    b'xcexd2xcaxc7xd6xd0xb9xfaxc8xcb'
    >>> bf.close
    <built-in method close of _io.BufferedReader object at 0x0000000002FD8F68>

    文件的打开和关闭

    文件处理步骤:打开->操作->关闭

    open : 文件的存储状态->文件的占用状态

    close: 文件的占用状态->文件的存储状态

    常用的读写文件操作:a.read(size)  a.readline(size)  a.readlines(hint)  a.write(s)  a.writelines(lines)  a.seek(offset)

    1、文件的打开

    <变量名> = open(<绝对路径/相对路径/文件名>, <打开模式>)

    'r'  只读模式,默认值,如果文件不存在,返回FileNotFoundError

    'w' 覆盖写模式,文件不存在则创建,存在则完全覆盖

    'x' 创建写模式,文件不存在则创建,存在则返回FileExistError

    'a' 追加写模式,文件不存在则创建,存在则在文件最后追加内容

    ‘b’ 二进制文件形式

    't' 文本文件模式,默认值

    ‘+’ 与r/w/x/a一同使用,在原功能基础上增加同时读写功能

    f = open('f.txt', 'a+')    文本形式打开,追加写模式 + 读文件

    f = open('f.txt', 'b')    二进制形式打开,读模式

    2、文件的关闭

    <变量名>.close()

    如果调用了open没有调用close,程序运行过程中,文件就一直处于打开模式,在程序退出后,python的解释器会将文件关闭。要注意调用close。

    3、文件内容的读取

    <f>.read(size = -1)    读入全部内容,如果输入参数,读入前size长度,指针下移

    <f>.readline(size = -1) 读入一行内容,如果给出参数,读入该行的前size长度,指针下移

    <f>.readlines(hint=-1) 读入文件所有行,以每行为元素形成列表,如果给出参数,读入前hint行

    fname=input("请输入文件名称:")
    fo = open(fname,"r")
    for line in fo.readlines():
        print(line)
    fo.close()

    一次性读入文件,会消耗很多内存,一般采用分行读入,逐行处理的思路

    fname=input("请输入文件名称:")
    fo = open(fname,"r")
    for line in fo:
        print(line)
    fo.close()

    4、数据的文件写入

    <f>.write(s)  向一个文件中写入字符串或者字节流,指针下移

    <f>.writelines(lines) 将一个元素全为字符串的列表写入文件 ,直接拼接,不换行,指针下移

    ls=["中国","法国","英国"]
    tf.writelines(ls)
    “中国法国英国”

    <f>.seek(offset) 改变当前文件操作指针的位置,offset的含义如下:0-文件开头,1-当前位置,2-文件结尾

    fo=open("output.txt",'w+')
    ls=["中国","法国","英国"]
    fo.writelines(ls)
    fo.seek(0)
    for line in fo:
        print(line)
    fo.close()
    输出:
    "中国法国英国"    

    5、实例 从文件中读取数据绘制图形

    #autodraw
    import turtle as t
    t.setup(800,600,0,0)
    t.pencolor("read")
    t.pensize(5)
    datals = []
    f = open("d:/python_test/data.txt")
    for line in f:
         line = line.replace("
    ","")    '''将
    替换为,'''
         datals.append(list(map(eval, line.split(","))))  /map 对第二个参数中的每一个元素,执行第一个参数的函数/
         datals
    f.close()
    for i in range(len(datals)):
         t.pencolor(datals[i][3], datals[i][4], datals[i][5])
         t.fd(datals[i][0])
         if datals[i][1]:
              t.right(datals[i][2])
         else:
              t.left(datals[i][2])

    举一反三:

    1、自动化思维:数据和功能分离,数据驱动的自动运行

    2、接口化设计:格式化设计接口,清晰明了

    3、二维数据应用:应用维度组织数据,二维数据最常用

    4、扩展接口设计,增加更多控制接口

    5、扩展功能设计

    6、扩展应用需求

  • 相关阅读:
    Jquery 实现banner图滚动效果
    常用正则表达式集锦
    获取客户端ip并用正则表达式验证
    锋利的jquery学习笔记
    ASP.NET 中DataGrid item 绑定方法
    SQL float 保留两位小数
    android 应用程序中执行Linux 命令
    UBUNTU 测试跑分
    The declared package..does not match the expected package..
    mybatis 配置文件 配置别名
  • 原文地址:https://www.cnblogs.com/xingmuxin/p/9243654.html
Copyright © 2020-2023  润新知