精华内容
下载资源
问答
  • python文件和数据格式化

    千次阅读 2019-01-22 21:01:14
    文件数据的抽象集合 文件是存储在辅助存储器上的数据序列 文件数据存储的一种形式 文件展现形态:文本文件和二进制文件 文本文件 vs 二进制文件 文本文件和二进制文件只是文件的展示方式 本质上,所有文件...

    文件的使用

    文件的类型

    文件的理解

    文件是数据的抽象和集合

    • 文件是存储在辅助存储器上的数据序列
    • 文件是数据存储的一种形式
    • 文件展现形态:文本文件和二进制文件

    文本文件 vs 二进制文件

    • 文本文件和二进制文件只是文件的展示方式
    • 本质上,所有文件都是二进制形式存储
    • 形式上,所有文件采用两种方式展示

    文本文件

    • 单一特定编码组成的文件,如UTF-8编码
    • 由于存在编码,也被看成是存储着的长字符串
    • 适用于例如:.txt文件、.py文件

    二进制文件

    • 直接由比特0和1组成,没有统一字符编码
    • 一般存在二进制0和1的组织结构,即文件格式
    • 适用于例如:.png文件、.avi文件等

    文件的打开和关闭

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

    文件的存储状态文件的占用状态a = open( , )a.close()文件的存储状态文件的占用状态

    文件打开以后就可以对文件进行读写

    #读文件函数
    a.read(size)
    a.readline(size)
    a.readlines(hint)
    
    #写文件函数
    a.write(s)
    a.writelines(lines)
    a.seek(offset)
    

    文件路径

    <变量名> = open(<文件名>, <打开模式>)
    

    打开模式

    文件的打开模式 描述
    ‘r’ 只读模式,默认值,如果文件不存在,返回FileNotFoundError
    ‘w’ 覆盖写模式,文件不存在则创建,存在则完全覆盖
    ‘x’ 创建写模式,文件不存在则创建,存在则返回FileExistsError
    ‘a’ 追加写模式,文件不存在则创建,存在则在文件最后追加内容
    ‘b’ 二进制文件模式
    ‘t’ 文本文件模式,默认值
    ‘+’ 与r/w/x/a一同使用,在原功能基础上增加同时读写功能

    文件的关闭

    <文件名>.close()
    

    文件内容的读取

    操作方法 描述
    <f>.read(size=-1) 读入全部内容,如果给出参数,读入前size长度
    <f>.readline(size=-1) 读入全部内容,如果给出参数,读入该行前size长度
    <f>.readlines(hint=-1) 读入文件所有行,以每行为元素形成列表,如果给出参数,读入前hint行

    文件的全文本操作

    • 遍历全文本:方法一
    fname = input("请输入要打开的文件名称:")
    fo = open(fname,"r")
    txt = fo.read()
    #对全文txt进行处理
    fo.close()
    
    • 遍历全文本:方法二
    fname = input("请输入要打开的文件名称:")
    fo = open(fname,"r")
    txt = fo.read(2)
    while txt != "":
        #对txt进行处理
        txt = fo.read(2)
    fo.close()
    

    文件的逐行操作

    • 逐行遍历文件:方法一
    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()
    

    数据的文件写入

    操作方法 描述
    <f>.write(s) 向文件写入一个字符串或字节流
    <f>.writelines(lines) 将一个元素全为字符串的列表写入文件
    <f>.seek(offset) 改变当前文件操作指针的位置,offset含义如下:0-文件开头,1-当前位置,2-文件结尾
    fo = open("output.txt","w+")
    ls = ["中国","法国","美国"]
    fo.writelines(ls)
    for line in fo:
          print(line)
    fo.close()
    

    此时控制台没有任何输出

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

    此时输出“中国法国美国”

    实例:自动轨迹绘制

    问题分析

    • 需求:根据脚本来绘制图形
    • 不是写代码而是数据绘制图形
    • 数据脚本是自动化最重要的第一步

    基本思路

    • 步骤1:定义数据文件格式(接口)
    • 步骤2:编写程序,根据文件接口解析参数绘制图形
    • 步骤3:编制数据文件

    编写程序

    #AutoTraceDraw.py
    import turtle as t
    t.title('自动轨迹绘制')
    t.setup(800,600,0,0)
    t.pencolor("red")
    t.pensize(5)
    
    #数据读取
    datals = []
    f = open("data.txt")
    for line in f:
          line = line.replace("\n","")
          datals.append(list(map(eval, line.split(","))))
    
    #自动绘制
    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])
    

    数据文件

    data.txt

    300,0,144,1,0,0
    300,0,144,0,1,0
    300,0,144,0,0,1
    300,0,144,1,1,0
    300,0,108,0,1,1
    184,0,72,1,0,1
    184,0,72,0,0,0
    184,0,72,0,0,0
    184,0,72,0,0,0
    184,1,72,1,0,1
    184,1,72,0,0,0
    184,1,72,0,0,0
    184,1,72,0,0,0
    184,1,72,0,0,0
    184,1,720,0,0,0
    

    运行结果

    image

    一维数据的格式化和处理

    数据组织的维度

    从一个数据到一组数据:一个数据表达一个含义,一组数据表达一个或多个含义

    • 一维数据:由对等关系的有序或无序数据构成,采用线性方式组织,对应列表、数组、集合等概念。
    • 二维数据:由多个一维数据构成,是一维数据的组合形式。表格是典型的二维数据。
    • 多维数据:由一维或二维数据在新的维度上扩展形成
    • 高维数据:键值对

    数据的操作周期:存储<->表示<->操作

    一维数据的表示

    如果数据间有序:使用列表类型

    • 列表类型可以表达一维有序数据
    • for循环可以遍历数据,进而对每个数据进行处理

    如果数据间无序:使用集合类型

    • 集合类型可以表达一维无需数据
    • for循环可以遍历数据,进而对每个数据进行处理

    一维数据的存储

    1. 存储方式一:空格分隔
    • 使用一个或多个空格分隔进行存储,不换行
    • 缺点:数据中不能存在空格
    1. 存储方式二:逗号分隔
    • 使用英文半角逗号分隔数据进行存储,不换行
    • 缺点:数据中不能有英文逗号
    1. 存储方式三:其他方式
    • 使用其他符号或符号组合分隔,建议采用特殊符号
    • 缺点:需要根据数据特点定义,通用性较差

    一维数据的处理

    从空格分割的文件中读入数据

    txt = open(fname).read()
    ls = txt.split()
    f.close()
    

    从特殊符号分割的文件中读入数据

    txt = open(fname).read()
    ls = txt.split("$")
    f.close()
    

    采用空格分隔方式将数据写入文件

    ls = ["中国","美国","日本"]
    f = open(fname,'w')
    f.write(' '.join(ls))
    f.close()
    

    二维数据的格式化和处理

    二维数据的表示

    使用列表类型(二维列表)

    • 使用两层for循环遍历每个元素
    • 外层列表中每个元素可以对应一行,也可以对应一列

    CSV格式与二维数据的存储

    CSV:Comma-Separated Values

    • 国际通用的一二维数据存储格式,一般.csv扩展名
    • 每行一个一维数据,采用逗号分隔,无空行
    • Excel可读入输出,一般编辑软件都可以产生
    • 如果某个元素确缺失,逗号仍要保留
    • 二维数据的表头可以作为数据存储,也可以另行存储

    二维数据的存储

    • 按行存或按列存都可以,具体由程序决定
    • 一般索引习惯:ls[row][column],先行后列
    • 根据一般习惯,外层列表每个元素是一行,按行存

    二维数据的处理

    从CSV文件中读入数据

    fo = open(fname)
    ls =[]
    for line in fo:
        line = line.replace("\n","")
        ls.append(line.split(","))
    fo.close()
    

    将数据写入CSV文件

    ls = [[],[],[]]  #二维列表
    f.open(fname,'w')
    for item in ls:
        f.write(','.join(item) + '\n')
    f.close()
    

    二维数据的逐一处理

    ls = [[],[],[]]  #二维列表
    for row in ls:
        for column in row:
            print(ls[row][column])
    

    wordcloud库的使用

    基本介绍

    wordcloud是优秀的词云展示的第三方库,词云以词语为基本单位,更加直观和艺术的展示文本。

    • 安装命令
    pip install wordcloud
    

    使用说明

    wordcloud库把词云当作一个WordCloud对象

    • wordcloud.WordCloud()代表一个文本对应的词云
    • 可以根据文本中词语出现的频率等参数绘制词云
    • 词云的形状、尺寸和颜色都可以设定

    wordcloud库常规方法

    w = wordcloud.WordCloud()
    
    • 以WordCloud对象为基础
    • 配置参数、加载文本、输出文件
    方法 描述
    w.generate(txt) 向WordCloud对象w中加载文本txt,w.generate("python and wordcloud")
    w.to_file(filename) 将词云输出成图像文件,.png或.jpg格式,w.to_file("outfile.png")
    • 步骤1:配置对象参数
    • 步骤2:加载词云文本
    • 步骤3:输出词云文件
    import wordcloud
    c = wordcloud.WordCloud()
    c.generate("wordcloud by python")
    c.to_file("pywordcloud.png")
    

    从文本到图片,wordcloud做了哪些事情呢?

    1. 分隔:以空格分隔单词
    2. 统计:单词出现次数并过滤
    3. 字体:根据统计配置字号
    4. 布局:颜色环境尺寸

    wordcloud配置对象参数

    w = wordcloud.WordCloud(<参数>)
    
    参数 描述
    width 指定词云对象生成图片的宽度,默认400像素
    height 指定词云对象生成图片的高度,默认200像素
    min_font_size 指定词云中字体的最小字号,默认4号
    max_font_size 指定词云中字体的最大字号,根据高度自动调节
    font_step 指定词云中字体字号的不进间隔,默认为1
    font_path 指定字体文件的路径,默认None
    max_words 指定词云显示的最大单词数量,默认为200
    stop_words 指定词云的排除词列表,即不显示的单词列表
    mask 指定词云形状,默认为长方形,需要引用imread()函数
    background_color 指定词云图片的背景颜色,默认为黑色
    #指定词云形状,默认为长方形,需要引用imread()函数
    from scipy.misc import imread 
    mk = imread("pic.png")
    w = wordcloud.WordCloud(mask = mk)
    

    两个小demo

    import wordcloud
    txt = "life is short, you need python"
    w = wordcloud.WordCloud( \
    	background_color = "white")
    w.generate(txt)
    w.to_file("d:/pywordcloud.png")
    

    image

    import jieba
    import wordcloud
    txt = "程序设计语言是计算机能够理解和\
    识别用户操作意图的一种交互体系,它按照\
    特定规则组织计算机指令,使计算机能够自\
    动进行各种运算处理。"
    w = wordcloud.WordCloud( width = 1000, \
        font_path = "msyh.ttc", height = 700)
    w.generate(" ".join(jieba.lcut(txt)))
    w.to_file("d:/zhongwenciyun.jpg")
    

    image

    实例:政府工作报告词云

    问题分析

    直观理解政策文件

    • 需求:对于政府工作报告等政策文件,如何直观理解?
    • 体会直观的价值:生成词云 & 优化词云
    graph LR
    政府工作报告等文件 --> 有效展示的词云
    

    基本思路和代码实现

    • 步骤1:读取文件,分词整理
    • 步骤2:设置并输出词云
    • 步骤3:观察结果,优化迭代
    #GovRpWordCloudv1.py
    import jieba
    import wordcloud
    f = open("关于实施乡村振兴战略的意见.txt","r",encoding="utf-8")
    #f = open("新时代中国特色社会主义.txt","r",encoding="utf-8")
    t = f.read()
    f.close()
    ls = jieba.lcut(t)
    txt = " ".join(ls)
    #w = wordcloud.WordCloud(max_words = 15,font_path = "msyh.ttc",width = 1000,height = 700,background_color = "white")
    w = wordcloud.WordCloud(font_path = "msyh.ttc",width = 1000,height = 700,background_color = "white")
    w.generate(txt)
    w.to_file("GovRpWordCloudv1.png")
    

    运行程序后,两个报告的词云如下:

    image

    image

    增加参数max_words=15,结果如下:

    image

    image

    增加形状mask = mask,词云图更加漂亮:

    #GovRpWordCloudv1.py
    import jieba
    import wordcloud
    from scipy.misc import imread
    mask = imread("chinamap.jpg")
    #mask = imread("fivestars.png")
    f = open("关于实施乡村振兴战略的意见.txt","r",encoding="utf-8")
    #f = open("新时代中国特色社会主义.txt","r",encoding="utf-8")
    t = f.read()
    f.close()
    ls = jieba.lcut(t)
    txt = " ".join(ls)
    w = wordcloud.WordCloud(mask = mask,font_path = "msyh.ttc",width = 1000,height = 700,background_color = "white")
    w.generate(txt)
    w.to_file("GovRpWordCloudv1.png")
    

    结果展示:
    image

    image

    扩展能力

    • 了解wordcloud更多参数,扩展词云能力
    • 特色词云:设计一款属于自己的特色词云风格
    • 更多文件:用更多文件练习词云生成

    练习素材下载:

    新时代中国特色社会主义.txt

    关于实施乡村振兴战略的意见.txt

    chinamap.jpg

    fivestars.png

    展开全文
  • Python - 文件和数据格式化

    千次阅读 2018-05-16 15:47:56
    Python - 文件和数据格式化 文件 数据的抽象集合 基本理解 存储在存储器上的数据序列 数据存储的一种形式 有文本文件和二进制文件两种形式 文本文件由单一特定编码组成的文件,如UTF-8编码 二进制文件...

    Python语言程序设计
    嵩天黄天羽礼欣

    Python - 文件和数据格式化

    文件

    数据的抽象和集合

    基本理解

    • 存储在存储器上的数据序列
    • 数据存储的一种形式
    • 有文本文件和二进制文件两种形式
      • 文本文件由单一特定编码组成的文件,如UTF-8编码
      • 二进制文件直接由比特0和1组成

    打开与关闭

    • <变量名> = open(<文件名>, <打开模式>)<变量名>.close()
    • 打开模式
      这里写图片描述

    读取与写入

    这里写图片描述

    这里写图片描述

    line = line.replace("\n","")ls.append(line.split(","))

    一维数据

    • 维度:一组数据的组织形式
    • 一维数据的表示:列表类型(有序)和集合类型(无序)
    • 一维数据的存储:空格分隔、逗号分隔、特殊符号分隔
    • 一维数据的处理:字符串方法 .split().join()

    二维数据

    • 二维列表表示

    CSV数据存储格式

    • Comma-Separated Values
    • 国际通用的一二维数据存储格式,以.csv为扩展名
    • 每行一个一维数据,采用逗号分隔,无空行
    • 逗号为英文半角逗号,逗号与数据之间无额外空格
    • 一般索引习惯: ls[row][column],先行后列
    展开全文
  • 本期帮助大家总结归纳Python文件和数据格式化的基本内容

    本期帮助大家总结归纳Python文件和数据格式化的基本内容

    展开全文
  • 统计附件文件中与其他任何其他行都不同的行的数量,即独特行的数量。 问题分析 这道题是python123课程里面的一道题,我先说一下我的分析过程: 要实现问题找到不同行数,那就要用每一行分别出它以外剩余所有行比较...

    描述

    统计附件文件中与其他任何其他行都不同的行的数量,即独特行的数量。

    问题分析

    这道题是python123课程里面的一道题,我先说一下我的分析过程:
    要实现问题找到不同行数,那就要用每一行分别和出它以外剩余所有行比较,然后如果剩余所有行中有和它相同的行,那么它就不是独特行,需要跳过。

    代码

    f=open("latex.log","r")
    f1=f.readlines() #建立一个列表,文件的每一行就是列表的一个元素,
    f.seek(0)
    f2=f.readlines() #建立第二个列表,用来作比较
    f.close()
    h=0 
    for i in range(len(f1)): #遍历每一行,寻找独特行
        for j in range(len(f2)): #对于正在寻找的行,用第二个列表的每一行作对比
            if i==j :#自己行不算
                continue
            elif f1[i]==f2[j]:#如果遇到相同行,跳过
                break
        else:#如果循环没有被打断,说明没有遇到相同行,则记录
            h+=1
    print("共{}独特行".format(h))
    

    第二种方法

    f = open("latex.log")
    ls = f.readlines()
    s = set(ls)
    for i in s:
        ls.remove(i)
    t = set(ls)
    print("共{}独特行".format(len(s)-len(t)))
    

    利用集合的特性,很简单的就可以得出答案。
    这个代码也是这道题提供出的参考答案。

    总结

    对于每一个实际问题,我们可以将它抽象成一个机器可以完成的任务,比如这道题,第一种方法就是模拟人查找独特行时的一个做法。
    至于哪种解决问题方法好,适合自己的才是最好的!

    展开全文
  • Python 保存json数据格式化文件

    千次阅读 2019-08-24 10:31:51
    前些天用到json文件来保存python的配置文件,但是遇到一个问题,怎么把json 保存到json的时候,还能保持json 的格式,打开txt文件的时候,方便阅读,配置文。不过单纯的file save 是不能保存格式化的,需要用到下面...
  • 文件和数据格式化 数据格式化:将一组数据按照一定规格式样进行规范:表示、存储、运算等 -文件的使用
  • python 将json数据格式化写入文件

    千次阅读 2019-05-05 15:17:01
    from taxii2client import Server import json ... api_roots = server.api_roots for api_root in api_roots: collections = api_root.collections for collection in ...【Golang】格式化JSON字符串,方便查看
  • 1.‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪...文件是程序的集合抽象 B 文件数据的集...
  • 1 以下选项对文件描述错误的是:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫...文件数据的集合抽象 正确答案: C 函数或类是程序的集合抽象,文件不是...
  • 测验7: 文件和数据格式化 (第7周)

    万次阅读 2018-11-13 11:33:04
    测验7: 文件和数据格式化 (第7周) 1、以下选项对文件描述错误的是:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬...
  • (2)Python能够以文本二进制两种方式处理文件 (3)Python通过解释器内置的open()函数打开一个文件 (4)文件关闭的.close()方法 文件处理遵循严格的“打开—操作—关闭”模式 文件使用结束后要用close()方法...
  • python读取文件格式化方法

    千次阅读 2019-02-24 22:14:05
    介绍python的一种较为通用的读取文件并进行格式化的方法。 第一种文件格式: 一行数据是一个特征向量,最后一项是标签,表示类别。数据之间用空格分隔。目的是输入这样的文件路径,得到它格式化形成的特征向量...
  • 理解一、二维高维数据的格式化过程 掌握 csv json 格式的相互转换 综合应用组合数据类型与 CSV JSON 数据格式编写简单的应用程序 实验内容 练习一 题目 将提供的 test.csv 文件,具体内容如下: 编程读入...
  • 打印输出附件文件的平均列数,计算方法如下:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪...
  • 1、‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬以下选项对文件描述...B、文件数据的...
  • 文件的打开关闭 文件的读写 2、数据组织的维度 一维数据 二维数据 高维数据 3、一维数据的处理 一维数据的表示 一维数据的存储 一维数据的处理 4、二维数据的处理 二维数据的存储 二维数据的处理 5、...
  • 整个CSV文件是一个二维数据 CSV文件的每一行是一维数据,可以使用Python中的列表类型表示 CSV文件格式是一种通用的、相对简单的文件格式,应用于程序之间转移表格数据 正确答案 A 一般来说,CSV文件都是文本文件,由...
  • 练习7: 文件和数据格式化 (第7周)

    千次阅读 2019-06-08 13:27:29
    文件行数 描述 打印输出附件文件的有效行数,注意:空行不计算为有效行数。 f = open("latex.log") s = 0 for line in f: line = line.strip('\n') if len(line) == 0: continue s += 1 print("共{}行".format(s...
  • 第27课 Python文件格式化写入

    千次阅读 2017-01-12 22:37:17
    如果想写入文本文件数据最终在文件里以下面的形式展示出来,需要在调用write函数时使用格式化控制字来格式化写入字符串。 下面的数据表现出数据是右对齐,且每列数据间有制表位。第一行是字段名,从第二行起是一...
  • f = open("latex.log") s = 0 for line in f: line = line.strip('\n') if len(line) == 0: continue s += 1 print("共{}行".format(s))

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 211,948
精华内容 84,779
关键字:

python文件和数据格式化

python 订阅