文件的使用

>文件的类型

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

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

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

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

文本文件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 若侵权请告知删除

 
 
 

最新文章

  1. Fiddler抓包工具使用基础
  2. DevExpress 创建EXCEL
  3. Linux selinux iptables
  4. C#实现Excel的导入导出
  5. gulp系列文章一 fis vs grunt vs gulp,为什么要是gulp呢?
  6. JAVA 正则表达式4种常用的功能
  7. 课程设计(部分代码)之java版(记事本)
  8. 2010“架构师接龙”问答--杨卫华VS赵劼(转)
  9. 基于html5实现的愤怒的小鸟网页游戏
  10. STL的简介
  11. hihocoder 第一周 最长回文字串
  12. 【SQL Server性能优化】SQL Server 2008该表压缩
  13. leetcode第九题--Palindrome Number
  14. 201521123083《Java程序设计》第二周学习总结
  15. [css 揭秘]:CSS编码技巧
  16. badgeview
  17. 微信小程序请求数据
  18. Vue之组件使用(二)
  19. 打开安装 好的Microsoft Dynamics CRM 4.0 报错误为 Caller does not have enough privilege to set CallerOriginToken to the specified value 的解决办法
  20. Lua学习笔记3. 函数可变参数和运算符、转义字符串、数组

热门文章

  1. 【USACO07FEB】 Cow Relays
  2. 聚类-----KMeans
  3. ECS服务器配置密钥登录及常用日志
  4. Tomcat优化和JVM分析工具
  5. 关于Webpack的的认识及傻瓜式教学
  6. mysql的大数据量的查询
  7. 微信公众号 sign类
  8. CSS之选择符、链接、盒子模型、显示隐藏元素
  9. Python---查看安装路径
  10. 【转载】Hadoop分布式文件系统HDFS的工作原理详述