python基础语法6,简单文件操作(简单易上手的python语法教学)(课后习题)
一、知识点
python基础语法6,简单文件操作(简单易上手的python语法教学)-CSDN博客
二、选择题
-
在 Python 中,使用以下哪个函数打开文件?
A.create()
B.open()
C.read()
D.file()
-
打开文件时,若要以只读模式打开文本文件,应使用的模式参数是?
A.'w'
B.'r'
C.'a'
D.'x'
-
若要以写入模式打开文件,且每次写入时覆盖原有内容,应使用的模式是?
A.'w'
B.'r+'
C.'a'
D.'w+'
-
以下哪种模式打开文件时,若文件不存在会创建新文件,若文件存在则在末尾追加内容?
A.'r'
B.'w'
C.'a'
D.'x'
-
使用
'x'
模式打开文件时,如果文件已存在会发生什么?
A. 覆盖原有文件
B. 在末尾追加内容
C. 抛出FileExistsError
异常
D. 正常打开文件 -
以下哪个方法用于读取文件的全部内容?
A.readline()
B.read()
C.readlines()
D.readall()
-
readline()
方法的作用是?
A. 读取文件的第一行内容
B. 读取文件的最后一行内容
C. 每次调用读取一行内容,并移动文件指针
D. 读取文件的指定行数内容 -
readlines()
方法返回的是什么类型的数据?
A. 字符串
B. 列表
C. 元组
D. 字典 -
以下哪种方式可以逐行读取文件内容?
A. 使用for
循环遍历文件对象
B. 使用read(10)
方法
C. 使用write()
方法
D. 使用close()
方法 -
向文件中写入内容应使用哪个方法?
A.read()
B.write()
C.append()
D.insert()
-
以下代码的输出结果是?
python
with open('test.txt', 'w') as f:f.write('Hello') with open('test.txt', 'r') as f:print(f.read())
A. 无输出
B.Hello
C.test.txt
D. 抛出异常 -
使用
with
语句打开文件的优势是?
A. 可以自动关闭文件
B. 只能读取文件内容
C. 比普通open()
函数速度更快
D. 只能写入文件内容 -
以下哪种方式可以正确关闭已打开的文件?
A.file.close()
B.file.end()
C.file.stop()
D.file.quit()
-
若文件未正确关闭,可能会导致的问题是?
A. 文件内容丢失
B. 程序运行速度加快
C. 无法再次打开该文件
D. 电脑自动关机 -
以下代码的运行结果是?
python
f = open('test.txt', 'w') f.write('Python') f.close() f.write('File')
A. 文件中内容为
PythonFile
B. 抛出ValueError: I/O operation on closed file
C. 文件中内容为File
D. 无任何错误 -
打开二进制文件时,应在模式参数后添加哪个字符?
A.'t'
B.'b'
C.'x'
D.'e'
-
以下哪种模式是打开二进制文件进行读写操作?
A.'rb'
B.'wb'
C.'r+b'
D.'ab'
-
以下代码的作用是?
python
with open('data.txt', 'r') as f:lines = f.readlines()
A. 将文件内容按行读取到列表中
B. 读取文件的第一行内容
C. 清空文件内容
D. 向文件中写入多行内容 -
若要获取文件当前的指针位置,应使用哪个方法?
A.getpos()
B.tell()
C.position()
D.loc()
-
以下哪个方法可以移动文件指针的位置?
A.move()
B.seek()
C.jump()
D.go()
-
以下代码中,文件指针的最终位置是?
python
with open('test.txt', 'w+') as f:f.write('12345')f.seek(2)
A. 0
B. 2
C. 5
D. 10 -
当文件以只读模式打开时,执行写入操作会发生什么?
A. 正常写入
B. 抛出IOError
异常
C. 覆盖原有内容
D. 在末尾追加内容 -
以下哪种情况会导致
open()
函数抛出FileNotFoundError
异常?
A. 以'w'
模式打开不存在的文件
B. 以'r'
模式打开不存在的文件
C. 以'a'
模式打开不存在的文件
D. 以'x'
模式打开不存在的文件 -
以下代码的运行结果是?
python
try:with open('nonexistent.txt', 'r') as f:content = f.read() except FileNotFoundError:print('File not found')
A. 无输出
B.File not found
C. 抛出异常但不打印信息
D. 程序崩溃 -
以下哪个方法可以判断文件是否已关闭?
A.file.closed()
B.file.is_closed()
C.file.closed
D.file.check_closed()
-
以下代码中,文件
test.txt
的最终内容是?python
with open('test.txt', 'w') as f:f.write('First\n') with open('test.txt', 'a') as f:f.write('Second')
A.
First\nSecond
B.Second
C.FirstSecond
D.First
-
使用
'r+'
模式打开文件时,以下说法正确的是?
A. 只能读取文件,不能写入
B. 只能写入文件,不能读取
C. 可以同时进行读写操作
D. 会创建新文件并覆盖原有文件 -
以下代码的运行结果是?
python
with open('test.txt', 'w+') as f:f.write('Hello World')f.seek(0)print(f.read(5))
A.
Hello
B.World
C.Hello World
D. 无输出 -
以下哪个函数可以获取文件的大小(字节数)?
A.os.size()
B.os.path.getsize()
C.file.getsize()
D.sys.getsize()
-
以下代码的作用是?
python
import os if os.path.exists('test.txt'):os.remove('test.txt')
A. 创建文件
test.txt
B. 读取文件test.txt
的内容
C. 如果文件存在则删除文件test.txt
D. 重命名文件test.txt
三、选择题答案
-
答案:B
解析:Python 中通过open()
函数打开文件,create()
、read()
不是打开文件的函数,file()
是过时的用法,不推荐使用。 -
答案:B
解析:'r'
是默认的只读模式,用于读取文本文件;'w'
是写入模式,'a'
是追加模式,'x'
是创建模式。 -
答案:A
解析:'w'
模式打开文件时,若文件存在会覆盖原有内容,若不存在则创建文件;'r+'
是读写模式,'a'
是追加模式,'w+'
是读写模式(会覆盖内容)。 -
答案:C
解析:'a'
(追加模式)的特点是:文件不存在则创建,存在则在末尾追加内容,不会覆盖原有内容。 -
答案:C
解析:'x'
模式用于创建新文件,若文件已存在,会直接抛出FileExistsError
异常,避免误覆盖。 -
答案:B
解析:read()
方法无参数时读取文件全部内容;readline()
读一行,readlines()
读所有行并返回列表,Python 中没有readall()
方法。 -
答案:C
解析:readline()
每次调用读取一行内容,调用后文件指针自动移动到下一行,多次调用可逐行读取。 -
答案:B
解析:readlines()
将文件所有行内容按顺序存入列表,每一行作为列表的一个元素(包含换行符)。 -
答案:A
解析:文件对象是可迭代的,使用for line in f:
循环可逐行读取内容;read(10)
按字节读取,write()
是写入方法,close()
是关闭文件。 -
答案:B
解析:write()
方法用于向文件写入字符串内容;read()
是读取方法,append()
和insert()
不是文件对象的方法(是列表方法)。 -
答案:B
解析:第一段代码以写入模式创建test.txt
并写入'Hello'
,第二段以只读模式打开并读取,输出写入的内容Hello
。 -
答案:A
解析:with
语句是上下文管理器,会在代码块执行完毕后自动关闭文件,无需手动调用close()
,避免文件未关闭的问题。 -
答案:A
解析:文件对象的close()
方法用于关闭文件;end()
、stop()
、quit()
都不是文件关闭的方法。 -
答案:A
解析:文件未正确关闭可能导致缓存中的数据未写入磁盘,造成内容丢失;不会加快程序速度,也不会导致无法再次打开或电脑关机。 -
答案:B
解析:文件关闭后(f.close()
)再调用write()
方法,会抛出ValueError: I/O operation on closed file
异常,无法继续写入。 -
答案:B
解析:打开二进制文件(如图片、音频)需在模式后加'b'
,如'rb'
(读二进制)、'wb'
(写二进制);'t'
是文本模式(默认)。 -
答案:C
解析:'r+b'
表示读写二进制文件;'rb'
是只读二进制,'wb'
是只写二进制(覆盖),'ab'
是追加二进制。 -
答案:A
解析:readlines()
方法将文件所有行读取到列表中,赋值给lines
,因此代码作用是按行读取内容到列表。 -
答案:B
解析:tell()
方法返回文件当前指针位置(字节数);Python 中没有getpos()
、position()
、loc()
方法。 -
答案:B
解析:seek(offset)
方法用于移动文件指针到指定位置(offset
是偏移量);move()
、jump()
、go()
不是文件指针移动的方法。 -
答案:B
解析:write('12345')
后指针在末尾(位置 5),seek(2)
将指针移动到位置 2,因此最终指针位置是 2。 -
答案:B
解析:只读模式('r'
)下不允许写入操作,执行write()
会抛出IOError
(或UnsupportedOperation
)异常。 -
答案:B
解析:'r'
模式打开不存在的文件会抛出FileNotFoundError
;'w'
、'a'
模式会创建不存在的文件,'x'
模式在文件不存在时创建,存在时抛其他异常。 -
答案:B
解析:尝试打开不存在的文件nonexistent.txt
(只读模式)会触发FileNotFoundError
,被except
捕获后打印File not found
。 -
答案:C
解析:file.closed
是文件对象的属性(不是方法),返回布尔值True
(已关闭)或False
(未关闭);没有closed()
等方法。 -
答案:A
解析:第一段以写入模式写入'First\n'
(含换行符),第二段以追加模式写入'Second'
,最终内容为First\nSecond
(换行后接 Second)。 -
答案:C
解析:'r+'
是读写模式,可同时进行读取和写入操作,不会创建新文件(文件需存在,否则抛异常),也不会覆盖原有文件(除非主动写入)。 -
答案:A
解析:write('Hello World')
后指针在末尾,seek(0)
移动到开头,read(5)
读取前 5 个字符'Hello'
并打印。 -
答案:B
解析:os.path.getsize(filename)
函数用于获取文件大小(字节数);os.size()
不存在,file.getsize()
不是文件对象方法,sys.getsize()
用于获取对象内存大小。 -
答案:C
解析:代码先通过os.path.exists()
判断test.txt
是否存在,若存在则用os.remove()
删除该文件,实现 “存在则删除” 的逻辑。
四、程序填空题
1、请补充以下代码,使用with
语句打开文件test.txt
并读取其全部内容:
with open('test.txt', '____') as f:content = f.____()print(content)
2、请补充以下代码,向文件data.txt
中写入字符串"Hello, Python!"
:
with open('data.txt', '____') as f:f.____("Hello, Python!")
3、请补充以下代码,逐行读取文件lines.txt
的内容并打印每行:
with open('lines.txt', 'r') as f:for ____ in ____:print(line)
4、请补充以下代码,使用readlines()
方法读取文件poem.txt
的所有行,并存储到列表lines
中:
with open('poem.txt', 'r') as f:lines = f.____()
print(lines)
5、请补充以下代码,实现:若文件temp.txt
存在则删除该文件(使用os
模块):
import ____
if os.path.____('temp.txt'):os.____('temp.txt')
五、程序填空题解析
1、完整代码:
with open('test.txt', 'r') as f:content = f.read()print(content)
解析:使用 'r' 模式只读打开文件,通过 read () 方法读取全部内容。
2、完整代码:
with open('data.txt', 'w') as f:f.write("Hello, Python!")
解析:使用 'w' 模式写入文件,通过 write () 方法写入指定字符串。
3、完整代码:
with open('lines.txt', 'r') as f:for line in f:print(line)
解析:通过 for 循环遍历文件对象,逐行获取内容并打印。
4、完整代码:
with open('poem.txt', 'r') as f:lines = f.readlines()
print(lines)
解析:readlines () 方法会将文件所有行读取到列表中,每行作为列表的一个元素。
5、完整代码:
import os
if os.path.exists('temp.txt'):os.remove('temp.txt')
解析:先通过 os.path.exists () 判断文件是否存在,若存在则用 os.remove () 删除文件。