文件的使用

>文件的类型

文件的理解:文件是数据的抽象和集合

-文件时存储在辅助存储器上的数据序列

-文件是数据存储的一种形式

-文件展现形态:文本文件和二进制文件

文本文件vs.二进制文件

-文本文件和二进制文件只是文件的展示方式

-本质上,所有文件都是二进制形式存储

-形式上,所有文件采用两种方式展示

文本文件

-由单一特定编码组成的文件,如UTF-8编码

-由于存在编码,也被看成是存储着长字符串

-适用于例如:.txt文件、.py文件等

二进制文件

-直接由比特0和1的组织,没有统一字符编码

-一般存在二进制0和1的组织结构,即文件格式

-适用于例如:.png文件、.avi文件等

-文本形式:中国是个伟大的国家!

-二进制形式:b'\xd6\xd0\xb9\xfa\xca\xc7\xb8\xf6\xce\xb0\xb4\xf3\xb5\ xc4\xb9\xfa\xbc\xd2\xa3\xa1'

f.txt文件保存: "中国是个伟大的国家!"

#文本形式打开文件
tf = open("f.txt", "rt")
print(tf.readline())
tf.close()
#中国是个伟大的国家!
#二进制形式打开文件
bf = open("f.txt", "rb")
print(bf.readline())
bf.close()
#b'\xd6\xd0\xb9\xfa\xca\xc7\xb8\xf6\xce\xb0 \xb4\xf3\xb5\xc4\xb9\xfa\xbc\xd2\xa3\xa1'

>文件的打开和关闭

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

文件的关闭

<变量名>.close

>文件内容的读取

>数据文件写入

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()
#中国法国美国

一维数据的格式化和处理

>数据组织的维度

一维数据:由对等关系的有序或无序,采用线性方式组织

二维数据:由多个一维数据构成,是一维数据的组合形式

>一维数据的表示

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

-for循环可以遍历数据,进而对每个数据进行处理

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

-for。。。

>一维数据的存储

存储方式一: 空格分隔

中国 美国 日本 德国 法国 英国 意大利

-使用一个或多个空格分隔进行存储,不换行

-缺点:数据中不能存空格

存储方式二:逗号分隔

中国,美国,日本,德国,法国,英国,意大利

-使用英文半角逗号分割数据进行存储,不换行

-缺点:数据中不能有英文逗号

存储方式三:其他方式

中国$美国$日本$德国$法国$英国$意大利

-使用其他符号或符号组合隔离,建议采用特殊符号

-缺点:需要根据数据特点定义,通用性差

>一维数据的处理

txt=open(fname).read()
ls=txt.split()
f.close
ls
#['中国', '美国', '日本', '德国 ', '法国', '英国', '意大利']

txt=open(fname).read()
ls=txt.split("$")
f.close
ls
#['中国', '美国', '日本', '德国 ', '法国', '英国', '意大利']

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

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

采用特殊分隔方式将数据写入文件

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

二维数据的格式化和处理

>二维数据的表示

>CSV数据存储格式

CSV: Comma-Separated Values

-国际通用的一二维数据存储格式,一般.csv扩展名

-每行一个一维数据,采用逗号分隔,无空行

-Excel和一般编译软件都可以读入或另存为CSV文件

-如果某个元素缺失,逗号仍要保留

-二维数据的表头可以作为数据存储,也可以另行存储

-逗号为英文半角逗号,逗号与数据之间无额外空格

>二维数据的存储

>二维数据的处理

二维数据的读入处理

从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][colum])

部分图片来自慕课https://www.icourse163.org/course/BIT-268001 若侵权请告知删除

 
 
 

Python-文件和数据格式化的更多相关文章

  1. python 文件与数据格式化

    https://www.cnblogs.com/li-zhi-qiang/p/9269453.html       文件和数据格式化 https://www.cnblogs.com/li-zhi-qi ...

  2. Python文件和数据格式化(教程)

    文件是一个存储在副主存储器的数据序列,可包含任何数据内容. 概念上,文件是数据的集合和抽象,类似的,函数是程序的集合和抽象. 用文件形式组织和表达数据更有效也更加灵活. 文件包括两种形式,文本文件和二 ...

  3. Python基础篇(五)_文件和数据格式化

    Python基础篇_文件和数据格式化 文件的使用:文件打开.关闭.读写 文件打开:通过open()函数打开文件,并返回一个操作文件的变量. 使用语法:<变量名> = (<文件路径以及 ...

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

    文件的概念: 文件是数据的抽象和集合,是存储在辅助存储器上的数据序列,文件是数据存储的一种形式,文件的展现形态,文本文件和二进制文件. 文本文件输出: f.txt文件保存:“我是中国人” >&g ...

  5. Python语言程序设计基础(7)—— 文件和数据格式化

    返回字符串 file = input() #返回字符串 fo = open(file,"r").read(6) print(fo) 返回列表形式 file = input() fo ...

  6. python文件操作及格式化输出

    1 文件与IO 1.1读写文本数据 读写各种不同的文本数据,如ASCII,UTF-8,UTF-9编码等. 使用带有rt模式的open()函数读取文本文件. 例如: with open('db', 'r ...

  7. python基础之 数据格式化

    %还是format 皇城PK Python中格式化字符串目前有两种阵营:%和format,我们应该选择哪种呢? 自从Python2.6引入了format这个格式化字符串的方法之后,我认为%还是form ...

  8. python --文件读取数据

    读取整个文件: 首先创建一个文件,例如我创建了一个t x t文件了. 然后我想读取这个文件了,我首先将上面的这个文件保存在我即将要创建的Python的文件目录下, 即读取文件成功. 解析: 函数ope ...

  9. 【Python文件处理】递归批处理文件夹子目录内所有txt数据

    因为有个需求,需要处理文件夹内所有txt文件,将txt里面的数据筛选,重新存储. 虽然手工可以做,但想到了python一直主张的是自动化测试,就想试着写一个自动化处理数据的程序. 一.分析数据格式 需 ...

  10. SpringMVC(三)-- 视图和视图解析器、数据格式化标签、数据类型转换、SpringMVC处理JSON数据、文件上传

    1.视图和视图解析器 请求处理方法执行完成后,最终返回一个 ModelAndView 对象 对于那些返回 String,View 或 ModeMap 等类型的处理方法,SpringMVC 也会在内部将 ...

随机推荐

  1. python cmd 启动python项目报错:no module named “xxx”

    场景:使用pycharm编辑器启动pyhon项目时可以启动,但使用cmd启动时,会报:no module named “xxx”的错误,此时,有两种情况: 1.no module named “xxx ...

  2. 第十三周 Leetcode 363. Max Sum of Rectangle No Larger Than K(HARD)

    Leetcode363 思路: 一种naive的算法就是枚举每个矩形块, 时间复杂度为O((mn)^2), 可以做少许优化时间复杂度可以降低到O(mnnlogm), 其中m为行数, n为列数. 先求出 ...

  3. 短链接及关键字过滤ac自动机设计思路

    =============:短链接设计思路:核心:将长字符转为短字符串并建立映射关系,存储redis中.1.使用crc32转换为Long 2.hashids将long encode为最短字符串.作为短 ...

  4. bzoj 1622: [Usaco2008 Open]Word Power 名字的能量【模拟】

    模拟即可,注意包含可以是不连续的 方便起见读入的时候全转成小写 #include<iostream> #include<cstdio> using namespace std; ...

  5. P3822 [NOI2017]整数

    传送门 shadowice大佬已经写的非常详细了我就不再写一遍了-- //minamoto #include<bits/stdc++.h> #define u unsigned int # ...

  6. 乐搏讲自动化测试-python语言特点及优缺点(5)

    相信小伙伴们都知道,随着软件测试行业的发展和进步自动化测试已经成为必然.在竞争日益激烈的市场环境中也是你升职加薪的利器. 所以,小编决定从今天起!将要系统.连续.高质量的持续更新「整套自动化测试」文章 ...

  7. vux修改css样式的2种办法

      最近手上有个移动端的项目.前端UI框架是选择的VUX.但是在使用的时候经常会发现框架自带的组件样式和我们要求的不一致.经常需要手动覆盖样式.这里记录下我们使用的2种方法. 我们以XHeader组件 ...

  8. [转]深入C语言内存区域分配(进程的各个段)详解

    一般情况下,一个可执行二进制程序(更确切的说,在Linux操作系统下为一个进程单元,在UC/OSII中被称为任务)在存储(没有调入到内存运行)时拥有3个部分,分别是代码段(text).数据段(data ...

  9. EasyUI tree 异步树与采用扁平化实现的同步树

    所谓好记性不如烂笔头,为了以防忘记,才写下这篇博客,废话不多.. 异步树: tips:   可以采用easyui里的原始数据格式,也可以采用扁平化的数据格式. 使用场景: 当菜单模块数量庞大或者无限极 ...

  10. NodeJs学习记录(四)初学阶段关于app.js里的一些重要配置

    app.set('views', path.join(__dirname, 'views')); 以上代码用于配置页面文件(例如 .ejs 文件)的根目录, 设置之后 访问 ./index 则等同于访 ...