文件的使用

>文件的类型

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

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

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

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

文本文件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. zoj 3023 Light Bulb

    题目大意: 求L的最大值 思路: 可以想象出是一个关于人到灯泡距离x的单峰上凸函数 当光线在墙角左边的时候影子在不断增长 然后通过相似可以推出人在墙上影子的长度为:H+D*(h-H)/x 再加上地上的 ...

  2. POJ 3294 UVA 11107 Life Forms 后缀数组

    相同的题目,输出格式有区别. 给定n个字符串,求最长的子串,使得它同时出现在一半以上的串中. 不熟悉后缀数组的童鞋建议先去看一看如何用后缀数组计算两个字符串的最长公共子串 Ural1517 这道题的思 ...

  3. MySQL索引学习记录

    参考资料: http://blog.csdn.net/v_july_v/article/details/6530142http://blog.codinglabs.org/articles/theor ...

  4. vue3.0新特性以及进阶路线

    Vue3.0新特性/改动 新手学习路线  ===> 起步 1. 扎实的 JavaScript / HTML / CSS 基本功.这是前置条件. 2. 通读官方教程 (guide) 的基础篇.不要 ...

  5. php+ajax+jquery实现jsonp跨域

    我们有这么个html文件test.html: 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...

  6. 思维题 UVA 10881 Piotr's Ants

    题目传送门 /* 题意:在坐标轴上一群蚂蚁向左或向右爬,问经过ts后,蚂蚁的位置和状态 思维题:本题的关键1:蚂蚁相撞看作是对穿过去,那么只要判断谁是谁就可以了 关键2:蚂蚁的相对位置不变 关键3:o ...

  7. C#---数据库访问通用类、Access数据库操作类、mysql类 .

    //C# 数据库访问通用类 (ADO.NET)using System;using System.Collections.Generic;using System.Text;using System. ...

  8. 386 Lexicographical Numbers 字典序排数

    给定一个整数 n, 返回从 1 到 n 的字典顺序.例如,给定 n =1 3,返回 [1,10,11,12,13,2,3,4,5,6,7,8,9] .请尽可能的优化算法的时间复杂度和空间复杂度. 输入 ...

  9. Hadoop Hive概念学习系列之hive的数据压缩(七)

    Hive文件存储格式包括以下几类: 1.TEXTFILE 2.SEQUENCEFILE 3.RCFILE 4.ORCFILE 其中TEXTFILE为默认格式,建表时不指定默认为这个格式,导入数据时会直 ...

  10. 循环语言(for)

    循环语句: 给出初始条件,先判断是否满足循环条件,如果不满足条件则跳过for语句,如果满足则进入for语句循环,for语句内的代码执行完毕之后,将按照状态改变改变变量,然后判断是否符合循环条件,符合继 ...