小甲鱼《零基础学习Python》课后笔记(二十八):文件——因为懂你,所以永恒

2019-01-11 15:14:58 浏览数 (2)

测试题 0.下边只有一种方式不能打开文件,请问是哪一种,为什么?

代码语言:javascript复制
f = open('E:/test.txt','w')  # A  
f = open('E:test.txt','w')  # B  
f = open('E://test.txt','w') # C  
f = open('E:\test.txt','w') # D  

B不能打开,因为t会被当做制表符。 1.打开一个文件我们使用open()函数,通过设置文件的打开方式,决定打开的文件具有哪些性质,请问默认的打开模式是什么? 默认“rb”,也就是只读文本模式。 2.请问>>>open(‘E:Test.bin’,‘xb’)是以什么样的模式打开文件的? 在路径上创建一个文本文件并打开,如果已经存在则产生一个“FileExistsError”错误。 3.尽管Python有所谓的“垃圾回收机制”,但是对于打开了的文件,在不需要用到的时候我们任然需要使用f.close()将文件对象“关闭”,这是为什么呢? 因为未使用close方法时,文件对象是保存在ram里,一掉电就会把修改丢失,使用close方法后修改后的文件会保存到磁盘里。 4.如何将一个文件对象(f)中的数据存放进列表中? list(f)方法。 5.如何迭代打印出文件对象(f)中的每一行数据?

代码语言:javascript复制
for each_line in f:  
	 print(each_line)  

6.文件对象的内置方法f.read(size = -1)作用是读取对象内容,size参数是可选的,那如果设置size = 10,例如f.read(10),将返回什么内容?

返回从文件指针开始的连续10个字符组成的字符串。 7.如何获得文件对象(f)当前文件指针的位置? f.tell() 8.还是视频中的那个演示文件(record.txt),请问为何f.seek(45,0)不会报错,但是f.seek(46)就出错了呢? 因为使用f.seek()定位的文件指针是按字节为单位进行计算的,演示文件是按GBK进行编码的,那样一个汉字需要两个字节,f.seek(45)的位置是字符“小”的开始位置,而f.seek(46)的位置刚好位于字符“小”的中间位置,按照GBK编码的形式无法解码。

0 人点赞