内容正文:
6.1文件操作
一、选择题
1.open函数中,<文件名>参数的要求不包括( )
A. 必须包含文件扩展名
B. 可以包含文件路径
C. 可以是无扩展名的字符串
D. 是必选参数
2.能正确打开“D盘/temp文件夹/data.txt”的代码是( )
A. f = open("D:\temp\data.txt")
B. f = open("D:/temp/data.txt")
C. f = open("D:temp\data.txt")
D. f = open("D:\\\temp\data.txt")
3.“r”模式打开不存在的文件时,程序会( )
A. 创建新文件 B. 清空内容
C. 报错 D. 追加内容
4.文件对象的closed属性返回值类型是( )
A. 字符串 B. 布尔值
C. 整数 D. 列表
5.会导致程序报错的代码是,期中existing.txt是已经存在的文件,new.txt是新文件。( )
A. f = open("new.txt", "x")
B. f = open("existing.txt", "x")
C. f = open("existing.txt", "w")
D. f = open("new.txt", "w")
6.os.path.getsize("file.txt") 返回的是文件的( )
A. 行数 B. 字符数
C. 字节数 D. 列数
7.属于文本文件模式的参数是( )
A. "b" B. "t" C. "x" D. "+"
8.执行 f = open("note.txt", "r+") 后, f.mode 的值是( )
A. "r" B. "w"
C. "r+" D. "rw"
9.若要将数据追加到“info.txt”末尾且文件不存在时自动创建,应选的打开模式是( )
A. "w" B. "a"
C. "x" D. "r"
10..关于“a+”模式的描述,错误的是( )
A. 支持读写操作 B. 会清空文件原有内容
C. 文件不存在时自动创建 D. 写数据追加到文件末尾
11.以下文件对象不能执行写操作的是( )
A. f = open("note.txt", "r+")
B. f = open("note.txt", "w")
C. f = open("note.txt", "a")
D. f = open("note.txt", "r")
二、填空题
import os
fname = "data.txt"
if ______:
size = ______
print("文件大小:", size)
else:
print("文件不存在")
13.执行以下代码后,“log.txt”的内容是______。
f = open("log.txt", "w")
f.write("Hello")
f.close()
f = open("log.txt", "w")
f.write("World")
f.close()
14.执行以下代码后,“test.txt”的内容是______。
f = open("test.txt", "w")
f.write("123")
f.close()
f = open("test.txt", "a")
f.write("456")
f.close()
15.执行以下代码后, print(f1, f2) 的输出是______。
f = open("test.txt")
f1 = f.closed
f.close()
f2 = f.closed
16.执行以下代码的输出是______。
import os
f = open("demo.txt", "w")
f.close()
print(os.path.getsize("demo.txt"))
三、综合题
17.编写代码:从键盘输入文件名,处理为“.txt”文件;若文件存在则以追加模式打开并输出“已打开文件”,若不存在则创建并输出“已创建文件”,最后关闭文件。
18.编写代码:打开“score.txt”:不存在则创建,以只写模式写入“数学:90”并关闭;再以追加模式打开,写入“语文:85”并关闭;最后用 os.path.getsize 输出文件大小。
19.指出以下代码的两处错误并改正:
f = open("test.txt", "r")
f.write("Hello")
print(f.closed)
f.close()
20.编写代码:①判断“record.txt”是否存在;②存在则输出“文件已存在,大小为:[大小]”并以读写模式打开;③不存在则输出“文件不存在,已创建”并创建文件;④最后关闭文件。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
6.1文件操作
一、选择题
1.open函数中,<文件名>参数的要求不包括( )
A. 必须包含文件扩展名
B. 可以包含文件路径
C. 可以是无扩展名的字符串
D. 是必选参数
【答案】C
【解析】<文件名>必须包含扩展名,因此“无扩展名的字符串”不符合要求。
2.能正确打开“D盘/temp文件夹/data.txt”的代码是( )
A. f = open("D:\temp\data.txt")
B. f = open("D:/temp/data.txt")
C. f = open("D:temp\data.txt")
D. f = open("D:\\\temp\data.txt")
【答案】B
【解析】Python路径分隔符需用“\”或“/”;A用单个“\”错误,C缺少分隔符,D多了一个“\”。
3.“r”模式打开不存在的文件时,程序会( )
A. 创建新文件 B. 清空内容
C. 报错 D. 追加内容
【答案】C
【解析】“r”是只读模式,打开不存在的文件会触发错误。
4.文件对象的closed属性返回值类型是( )
A. 字符串 B. 布尔值
C. 整数 D. 列表
【答案】B
【解析】 closed 属性返回布尔值:True、False。
5.会导致程序报错的代码是,期中existing.txt是已经存在的文件,new.txt是新文件。( )
A. f = open("new.txt", "x")
B. f = open("existing.txt", "x")
C. f = open("existing.txt", "w")
D. f = open("new.txt", "w")
【答案】B
【解析】“x”是创建模式,文件已存在时会报错;A、C、D均不会报错。
6.os.path.getsize("file.txt") 返回的是文件的( )
A. 行数 B. 字符数
C. 字节数 D. 列数
【答案】C
【解析】 os.path.getsize() 返回文件的字节数。
7.属于文本文件模式的参数是( )
A. "b" B. "t" C. "x" D. "+"
【答案】B
【解析】“t”是文本文件模式(默认),“b”是二进制模式,“x”是创建模式,“+”是读写附加参数。
8.执行 f = open("note.txt", "r+") 后, f.mode 的值是( )
A. "r" B. "w"
C. "r+" D. "rw"
【答案】C
【解析】 mode 属性返回打开模式的字符串,此处打开模式为“r+”。
9.若要将数据追加到“info.txt”末尾且文件不存在时自动创建,应选的打开模式是( )
A. "w" B. "a"
C. "x" D. "r"
【答案】B
【解析】“a”是追加模式,支持末尾写入且自动创建不存在的文件;“w”会清空内容,“x”存在则报错,“r”只读。
10..关于“a+”模式的描述,错误的是( )
A. 支持读写操作 B. 会清空文件原有内容
C. 文件不存在时自动创建 D. 写数据追加到文件末尾
【答案】B
【解析】“a+”是追加读写模式,不会清空原有内容,写操作追加到末尾。
11.以下文件对象不能执行写操作的是( )
A. f = open("note.txt", "r+")
B. f = open("note.txt", "w")
C. f = open("note.txt", "a")
D. f = open("note.txt", "r")
【答案】D
【解析】“r”是只读模式,不支持写操作;A(r+)、B(w)、C(a)均支持写。12.补全代码:判断“data.txt”是否存在,存在则输出文件大小,否则输出“文件不存在”。
二、填空题
import os
fname = "data.txt"
if ______:
size = ______
print("文件大小:", size)
else:
print("文件不存在")
【答案】 os.path.isfile(fname) ; os.path.getsize(fname)
【解析】 os.path.isfile() 判断文件是否存在, os.path.getsize() 获取文件大小。
13.执行以下代码后,“log.txt”的内容是______。
f = open("log.txt", "w")
f.write("Hello")
f.close()
f = open("log.txt", "w")
f.write("World")
f.close()
【答案】World
【解析】“w”模式每次打开都会清空文件,第二次写入“World”覆盖了之前的“Hello”。
14.执行以下代码后,“test.txt”的内容是______。
f = open("test.txt", "w")
f.write("123")
f.close()
f = open("test.txt", "a")
f.write("456")
f.close()
【答案】123456
【解析】“w”模式写入“123”,“a”模式追加“456”,最终内容为两者拼接。
15.执行以下代码后, print(f1, f2) 的输出是______。
f = open("test.txt")
f1 = f.closed
f.close()
f2 = f.closed
【答案】False True
【解析】文件刚打开时 closed 为False,执行 close() 后变为True。
16.执行以下代码的输出是______。
import os
f = open("demo.txt", "w")
f.close()
print(os.path.getsize("demo.txt"))
【答案】0
【解析】“w”模式创建的空文件字节数为0,因此 os.path.getsize() 返回0。
三、综合题
17.编写代码:从键盘输入文件名,处理为“.txt”文件;若文件存在则以追加模式打开并输出“已打开文件”,若不存在则创建并输出“已创建文件”,最后关闭文件。
【答案】
import os
fname = input("请输入文件名:")
fname = fname + ".txt"
if os.path.isfile(fname):
f = open(fname, "a")
print("已打开文件")
else:
f = open(fname, "x")
print("已创建文件")
f.close()
18.编写代码:打开“score.txt”,以只写模式写入“数学:90”并关闭;再以追加模式打开,写入“语文:85”并关闭;最后用 os.path.getsize 输出文件大小。
【答案】
import os
# 只写模式写入“数学:90”
f = open("score.txt", "w")
f.write("数学:90")
f.close()
# 追加模式写入“语文:85”
f = open("score.txt", "a")
f.write("语文:85")
f.close()
# 输出文件大小
size = os.path.getsize("score.txt")
print("文件大小:", size)
19.指出以下代码的两处错误并改正:
f = open("test.txt", "r")
f.write("Hello")
print(f.closed)
f.close()
【答案】
错误1:“r”模式是只读模式,无法执行 write() ,应改为“r+”/“w”等支持写的模式;
错误2: print(f.closed) 在 close() 前执行,此时文件未关闭,输出为False,应将print放在 close() 之后。
改正后代码:
f = open("test.txt", "r+")
f.write("Hello")
f.close()
print(f.closed)
20.编写代码:①判断“record.txt”是否存在;②存在则输出“文件已存在,大小为:[大小]”并以读写模式打开;③不存在则输出“文件不存在,已创建”并创建文件;④最后关闭文件。
【答案】
import os
fname = "record.txt"
if os.path.isfile(fname):
size = os.path.getsize(fname)
print(f"文件已存在,大小为:{size}")
f = open(fname, "r+")
else:
print("文件不存在,已创建")
f = open(fname, "x")
f.close()
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$