Python数据读写与组织全解析(查缺补漏篇)
1 高维数据
由键值对类型的数据构成,可以多层嵌套。高维数据相比一维和二维数据能表达更加灵活和复杂的数据关系,可以用字典类型表示。一维数据不用字典类型来表示。
2read、readline、redlines和for 循环输出读取的区别
直接read,读取的结果就是一个字符串,和文件中一模一样
f_2=open('cpi.csv','r')
print(f_2.read())
指标,2015,2016,2017,
居民消费指数,102,103,104,
食品,102,103,104,
衣服,102,103,104,
用readline读取,结果只能读取文件中第一行内容,并且返回的也是字符串。
f_2=open('cpi.csv','r')print(f_2.readline())
指标,2015,2016,2017,
用readline读取,结果会读取全部,以一个列表形式返回,其中每一个元素代表每行的数据,其中还包含换行符\n.
f_2=open('cpi.csv','r')
print(f_2.readlines())
['指标,2015,2016,2017,\n', '居民消费指数,102,103,104,\n', '食品,102,103,104,\n', '衣服,102,103,104,\n']
用for 循环输出结果和read区别就是多了一行空的,原因是print()自带一个换行符再加上原本带的换行符,就导致多了一个
f_2=open('cpi.csv','r')
for line in f_2:print(line)
指标,2015,2016,2017,居民消费指数,102,103,104,食品,102,103,104,衣服,102,103,104,
3关于数据组织
一维数据由对等关系的有序或无序数据构成,采用线性方式组织,对应于数学中数组的概念。任何表现为序列或集合的内容都可以看作是一维数据。
4写入模式
"a"追加写模式,文件存在则在源文件最后追加内容,不存在则创建,并不会返回错误信息。
5 高维数组,二维数组,一维数组
高维数据由键值对类型的数据构成,采用对象方式组织,可以多层嵌套
一维数据由对等关系的有序或无序数据构成,采用线性方式组织,对应于数学中数组的概念。任何表现为序列或集合的内容都可以看作是一维数据。
举例
ls=[1,2,3, 4,5,6,[7,8,9]]前几个元素都是单独一个元素,将[7,8,9]视为一个子列表元素,因此ls可能为一维数据。而如果lt=[[1],[2],[3],[4],[5],[6],[7,8,9]],则为lt为二维数据,且有7个元素。
6路径的表达形式
还有一种在路径前面加r
6当可变数组遇到了局部变量
ls = ['car','truck']
def fff (a) :ls=[]ls. append(a)return
fff ('bus')
print (ls)
运行结果
['car','truck']
当我们遇到这个情况,我们可能会想到,ls为可变变量,在函数中改变,会改变全局变量的数值,但是这题我们可以看到,在函数中声明了一个ls,此时,这里算声明了一个局部变量,在函数结束之后,局部变量的数据就消失了。可变数组:使用情况,只有在append(),pop()这些方法使用的时候才是可变数组这类情况