python学习手册(第4版) 第九章
在第八章的学习中,主要了解的是可变对象的集合:列表和字典,列表的排序/反转/增删查等方法,以及列表的解析表达式,字典的三种创建方法/对键的操作/对值的操作/键值对的增删查,以及字典的解析表达式。
现在第九章,主要了解元组和文件,属于不可变对象的集合。
简单使用:
>>>t1 = (0,) #单个元素的元组,多使用一个逗号,非表达式
>>>t2 = tuple('spam') #可迭代对象的元组
>>>t2
('s','p','a','m')
搜索索引.index()/计数.count()
>>>t2.index('s') #搜索索引,返回索引值
0
>>>t3 = (1,1,1,1,1,1)
>>>t3.index(1,-1) #索引的另一个用法,当存在多个相同值的时候,传入第二个参数,确定返回第几个此值的索引,返回索引值
5
>>>t2.count('s') #计数,返回元素的个数
1
元组也是序列,支持字符串和列表的一些操作,如:+/*/索引/分片
>>>(1,2) + (3,4,5) #序列相加,类似集合的合并
(1,2,3,4,5)
>>>(1,3)*2 #相当于序列自身多次相加
(1,3,1,3)
>>>t2[2] #元组索引,返回单个元素
'a'
>>>t2[1:3] #元组切片,返回一个元组
('p','a')
文件的操作
1.文件的写操作
>>>output = open(r'test.txt','w') #执行写操作,文件不存在则在当前目录新建,存在则打开
>>>output.write('abc\n\efg!') #写入内容,返回写入的字符个数
7
>>>output.flush() #将缓存区内容刷到硬盘,但不关闭文件,无返回,执行此操作后,上一步的写入内容,在文件中才能看到,否则文件中看不到相关写入内容
>>>output.close() #关闭文件,释放资源,如果不关闭,文件一直被占用,如果想删除,则不允许被删除,需要养成手动关闭文件的好习惯
2.文件的读操作
>>>input = open('data.txt','r') #执行读操作,读取当前目录下的文件,文件不存在则报错,data.txt的内容为'hello\nhi!'
>>>astring = input.read() #一次性将文件内容全部读取出来,返回一个字符串
>>>astring
'hello\nhi!'
>>>astring = input.read() #再次执行读操作,则返回内容为空,因为文件内容只被读取一遍,想要再读取一遍,需要重新执行一次读操作
>>>astring
''
>>>input2 = open('data.txt','r') #再次执行读操作
>>>astring2 = input2.read(1) #设定每次读取的字符个数,返回一个字符串
>>>astring2
'h'
>>>astring2 = input2.read(3) #继续读取文件剩下的内容
>>>astring2
'ell'
>>>input3 = open('data.txt','r') #再次执行读操作
>>>astring3 = input3.readline() #读取下一行到字符串(包括行末的换行符),返回一个字符串
'hello\n'
>>>input4 = open('data.txt','r') #再次执行读操作
>>>astring4 = input4.readlines() #一次性读取所有内容,将每行(包括行末的转行符)作为一个字符串存入列表
>>>astring4
['hello\n','hi!']
>>>output2 = open('data.txt','a') #执行追加写操作
>>>output2.write('\nabc') #在文件尾执行追加写,返回写入的字符个数,此时打开文件,内容还没有追加进去,还在缓存中,没有写入硬盘
4
>>>output2.flush() #将缓存内容刷入硬盘,无返回,再次打开文件时,内容才被写入
>>>output2.close() #手动关闭文件,这是一个好习惯