内容正文:
编写说明:2027版安徽省普通高校对口招生考试电子与信息大类(计算机类)专业《考纲百套卷》,依据《安徽省普通高校对口招生专业理论和技能测试考试纲要(2025年版)》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共99份试卷,其中知识训练卷75份、专题训练卷17份、课程综合卷9份。
本试卷是第74卷,为知识训练卷,按《计算机编程基础—Python语言》中“文件操作”范围和要求编写。具体内容为:1.文件的打开和关闭(B)。2.文件的读写(C)。3.数据的格式化(D)。
安徽省对口招生考试
电子与信息大类(计算机类)《考纲百套卷》
第74卷 计算机编程基础—Python语言——文件操作
(考试时间:45分钟 满分:100分)
一、填空题(共10题,每题2分,共20分)
1.使用__________模块可读写CSV格式文件。
【答案】csv
【解析】csv模块提供reader()读取CSV行解析为列表、writer()写入CSV文件。需import csv导入。CSV是通用表格数据交换格式。
2.JSON数据写入文件前需用__________函数将Python对象转为字符串。
【答案】json.dumps()
【解析】json.dumps()负责把 Python 字典 / 列表等对象序列化成为 JSON 格式字符串;json.dump()直接将对象写入文件,无需中间字符串。对应反向解析:json.loads()字符串转对象、json.load()读取 JSON 文件。
3.文件操作中捕获异常的语句是__________。
【答案】try-except
【解析】使用try-except异常捕获结构包裹文件打开、读写代码,捕获文件不存在、权限不足等 IO 异常,避免程序直接崩溃;可搭配 else、finally 完善逻辑。
4.__________模式读写文件,__________模式写读文件。
【答案】r+、w+
【解析】r+读写模式,文件必须提前存在,支持读取 + 覆盖写入;w+可读可写,打开时直接清空原有文件,文件不存在则新建。
5.使用__________模块可操作文件和目录(创建/删除/重命名/路径拼接)。
【答案】os
【解析】os 模块提供文件、文件夹创建、删除、重命名、路径拼接、路径判断等系统级目录文件操作接口。
6.Python 3.4+推荐的路径操作库是__________。
【答案】pathlib
【解析】Python3.4 及以上官方推荐pathlib面向对象路径库,相比 os.path 写法更简洁,可快速获取文件名、后缀、上级路径等。
7.读取文件前n个字符用__________,跳过前n个字符用__________。
【答案】read(n)、seek(n)
【解析】read(n)读取文件前 n 个字符(文本模式);seek(n)移动文件指针偏移 n 字节,实现跳过开头 n 个字符读取内容。
8.格式化写入JSON时,__________参数可指定缩进实现美化输出。
【答案】indent
【解析】json.dump()/json.dumps()的indent参数设置缩进空格数,格式化排版 JSON,方便查看;ensure_ascii=False用来正常显示中文。
9.f=open("a.txt","w");os.remove("a.txt")后f对象仍然存在的现象说明__________。
【答案】文件对象和磁盘文件独立
【解析】os.remove()删除磁盘上的实体文件,但内存中的文件对象f依旧有效,只要未执行 close (),依然可以写入缓冲区内容,二者生命周期相互独立。
10.csv.reader的__________参数可指定分隔符,默认逗号。
【答案】delimiter
【解析】csv.reader 的delimiter参数自定义列分隔符号,默认以逗号,分割字段,适配制表符、竖线等特殊分隔 CSV 文件。
二、单项选择题(共15题,每题2分,共30分)
11.os.path.join("dir","file.txt")返回( )
A.dir/file.txt
B.dir\file.txt
C.平台相关路径
D.dir
【答案】C
【解析】os.path.join自动适配Windows反斜杠\或Linux斜杠/。跨平台路径拼接推荐方式。
12.json.loads("{"a":1}")解析为( )
A.字符串
B.字典
C.列表
D.报错
【答案】D
【解析】JSON字符串必须双引号。{"a":1}中单引号非法。正确:json.loads('{"a":1}')。常见陷阱。
13.f=open("t.txt","r+");f.read();f.write("x")( )
A.文件尾追加x
B.文件头覆盖
C.报错
D.清空后写
【答案】A
【解析】r+读写。read()后指针在末尾,write在末尾追加。若seek(0)后write则从开头覆盖。
14.f=open("t.txt","w");f.write("Hi");f.read()( )
A.返回Hi
B.返回空
C.报错
D.返回None
【答案】C
【解析】w模式只写不可读。read()引发UnsupportedOperation。需w+模式才能读。
15.二进制模式写bytes的正确用法( )
A.open("f","w").write(b"hi")
B.open("f","wb").write("hi")
C.open("f","wb").write(b"hi")
D.open("f","w").write("hi")
【答案】C
【解析】wb模式写入二进制数据。write参数必须是bytes类型。文本模式w写入str,默认编码转换。
16.f=open("t.txt","a+");f.seek(0);f.write("X")( )
A.文件头写X
B.文件尾写X
C.报错
D.光标位置写
【答案】B
【解析】a+追加模式。seek可移动读指针但写入一定在文件末尾。Python保证追加语义。
17.os.path.exists(".")返回( )
A.True
B.False
C.报错
D.None
【答案】A
【解析】.代表当前目录,始终存在。os.path.exists检查文件或目录是否存在。isfile/islink进一步区分类型。
18.f.flush()的作用( )
A.关闭文件
B.清空内容
C.刷新缓冲区写入磁盘
D.删除文件
【答案】C
【解析】flush强制将缓冲区数据写入磁盘。write后数据可能缓冲未立即写入。close前自动flush。
19.Path("a/b/c.txt").suffix返回( )
A.c
B.txt
C..txt
D.c.txt
【答案】C
【解析】suffix返回后缀含点.。stem返回不含后缀的c。parent返回a/b。name返回c.txt。各部分解析路径。
20.f.write("中")后有f.tell()可能返回( )
A.1
B.2
C.3
D.取决于编码
【答案】D
【解析】UTF-8中文占3字节tell返回3。GBK占2字节。tell返回字节偏移非字符数。write返回字符数。
21.除零异常的except类型( )
A.OSError
B.ZeroDivisionError
C.FileNotFoundError
D.RuntimeError
【答案】B
【解析】ZeroDivisionError是除零异常。open文件不存在是FileNotFoundError(OSError子类)。
22.json.dump中文默认( )
A.保留中文
B.转义为\\u
C.二进制
D.忽略
【答案】B
【解析】json.dump默认ensure_ascii=True转义非ASCII。中文变\\uXXXX。设置False保留原文。
23.f.truncate(100)的作用( )
A.读100字符
B.文件截断为100字节
C.跳过100字节
D.报错
【答案】B
【解析】truncate截断文件到指定大小。f.truncate()截断到当前位置。需写权限。超出现有大小扩展为零填充。
24.with open() as f后f.closed属性( )
A.True
B.False
C.None
D.不一定
【答案】A
【解析】with块退出后自动close(),f.closed为True。with块内为False。try-finally也需手动close。
25.open("f","x")模式的作用( )
A.独占创建
B.读
C.写
D.追加
【答案】A
【解析】x模式Python3.3+排他创建。文件存在则FileExistsError。原子性保证避免竞争条件。安全创建新文件。
三、程序分析题(共3题,每题6分,共18分)
26.import ______
data={"name":"张三","scores":[85,92,78]}
with open("data.json","w",encoding="utf-8") as f:
______.______(data,f,ensure_ascii=False,indent=2)
【答案】(1)json(2分);(2)json(2分);(3)dump(2分)。
【解析】json.dump将Python对象序列化写入文件。ensure_ascii=False保留中文,indent=2缩进格式化输出可读性好。
27.import csv
data=[["姓名","成绩"],["张三","85"],["李四","92"]]
with open("scores.csv","w") as f:
w=csv.writer(f)
for row in data:
w.write(row)
【答案】(1)csv.writer的writerow方法不是write,应改为w.writerow(row)(3分);(2)缺少newline参数,应open("scores.csv","w",newline="")避免Windows多余空行(3分)。
【解析】csv.writer用writerow写入单行,writelines写多行。Windows下需newline=""防止csv模块自动换行与系统换行叠加。
28.import json
data={"a":[1,2],"b":{"c":3}}
s=json.dumps(data)
d2=json.loads(s)
print(s[0])
print(type(d2))
print(d2["b"]["c"])
with open("test.json","w") as f:
json.dump(data,f)
import os
print(os.path.getsize("test.json"))
【答案】{
<class 'dict'>
3
15
【解析】dumps返回JSON字符串首字符{。loads解析回dict。d2["b"]["c"]=3。dump写入文件后getsize获取文件大小字节数(具体值取决于数据长度)。
四、程序设计题(3题,29/30各6分/31各8分)
29.读取CSV文件scores.csv(含表头:姓名,语文,数学),计算每位学生的总分,写入result.csv(增加总分列)。样例:scores.csv含张三,85,92→result.csv张三,85,92,177
【答案】import csv
rows=[]
with open('scores.csv','r',newline='',encoding='utf-8') as f:
r=csv.reader(f)
header=next(r)
header.append('总分');rows.append(header)
for row in r:
total=sum(int(x) for x in row[1:])
row.append(str(total));rows.append(row)
with open('result.csv','w',newline='',encoding='utf-8') as f:
w=csv.writer(f)
w.writerows(rows)
【解析】csv.reader读取,next取表头跳过。遍历每行,sum+生成器表达式计算总分并追加str。writerows一次写入所有行。
30.读取JSON配置文件config.json,修改其中的debug值为True并保存。若文件不存在创建默认配置。
【答案】import json,os
config={'debug':False,'version':'1.0'}
if os.path.exists('config.json'):
with open('config.json','r',encoding='utf-8') as f:
config=json.load(f)
config['debug']=True
with open('config.json','w',encoding='utf-8') as f:
json.dump(config,f,indent=2,ensure_ascii=False)
【解析】先检查文件存在则读取。修改debug键。dump写回。indent缩进美化,ensure_ascii=False保中文。读-改-写标准流程。
31.编写程序合并两个文本文件
a.txt和
b.txt的内容写入
c.txt,每个文件内容之间用====分隔。使用try-except处理文件不存在异常。
【答案】files=['a.txt','b.txt']
with open('c.txt','w',encoding='utf-8') as out:
for fn in files:
try:
with open(fn,'r',encoding='utf-8') as f:
out.write(f.read())
except FileNotFoundError:
out.write(f'[{fn}不存在]
')
if fn!=files[-1]:
out.write('
====
')
print('合并完成')
【解析】遍历文件列表,try捕捉不存在异常写入提示。f.read()全文读取写入输出。最后加分隔符(最后一个文件不加)。except使程序不因单个文件缺失中断。
五、综合应用题(共1题,每题12分,共12分)
32.设计日志分析系统:读取日志文件app.log,统计各日志级别(INFO/WARNING/ERROR)的数量,ERROR日志单独写入error.log,结果输出为JSON格式的report.json。使用csv/json/os模块综合实现。样例app.log含多行[INFO]xxx,[ERROR]yyy→report.json含统计{INFO:10,WARNING:5,ERROR:3}
【答案】import json,os
if not os.path.exists('app.log'):
print('文件不存在');exit()
counts={'INFO':0,'WARNING':0,'ERROR':0}
errors=[]
with open('app.log','r',encoding='utf-8') as f:
for line in f:
for level in counts:
if f'[{level}]' in line:
counts[level]+=1
if level=='ERROR':
errors.append(line.strip())
break
with open('error.log','w',encoding='utf-8') as f:
f.write('
'.join(errors))
with open('report.json','w',encoding='utf-8') as f:
json.dump(counts,f,indent=2,ensure_ascii=False)
print('分析完成,统计:'+str(counts))
【解析】逐行扫描日志检查各级别标签。ERROR行收集到列表。join写入error.log。统计字典dump到JSON。综合文件检查+逐行读取+分类统计+多格式输出。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
编写说明:2027版安徽省普通高校对口招生考试电子与信息大类(计算机类)专业《考纲百套卷》,依据《安徽省普通高校对口招生专业理论和技能测试考试纲要(2025年版)》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共99份试卷,其中知识训练卷75份、专题训练卷17份、课程综合卷9份。
本试卷是第74卷,为知识训练卷,按《计算机编程基础—Python语言》中“文件操作”范围和要求编写。具体内容为:1.文件的打开和关闭(B)。2.文件的读写(C)。3.数据的格式化(D)。
安徽省对口招生考试
电子与信息大类(计算机类)《考纲百套卷》
第74卷 计算机编程基础—Python语言——文件操作
(考试时间:45分钟 满分:100分)
一、填空题(共10题,每题2分,共20分)
1.使用__________模块可读写CSV格式文件。
2.JSON数据写入文件前需用__________函数将Python对象转为字符串。
3.文件操作中捕获异常的语句是__________。
4.__________模式读写文件,__________模式写读文件。
5.使用__________模块可操作文件和目录(创建/删除/重命名/路径拼接)。
6.Python 3.4+推荐的路径操作库是__________。
7.读取文件前n个字符用__________,跳过前n个字符用__________。
8.格式化写入JSON时,__________参数可指定缩进实现美化输出。
9.f=open("a.txt","w");os.remove("a.txt")后f对象仍然存在的现象说明__________。
10.csv.reader的__________参数可指定分隔符,默认逗号。
二、单项选择题(共15题,每题2分,共30分)
11.os.path.join("dir","file.txt")返回( )
A.dir/file.txt
B.dir\file.txt
C.平台相关路径
D.dir
12.json.loads("{"a":1}")解析为( )
A.字符串
B.字典
C.列表
D.报错
13.f=open("t.txt","r+");f.read();f.write("x")( )
A.文件尾追加x
B.文件头覆盖
C.报错
D.清空后写
14.f=open("t.txt","w");f.write("Hi");f.read()( )
A.返回Hi
B.返回空
C.报错
D.返回None
15.二进制模式写bytes的正确用法( )
A.open("f","w").write(b"hi")
B.open("f","wb").write("hi")
C.open("f","wb").write(b"hi")
D.open("f","w").write("hi")
16.f=open("t.txt","a+");f.seek(0);f.write("X")( )
A.文件头写X
B.文件尾写X
C.报错
D.光标位置写
17.os.path.exists(".")返回( )
A.True
B.False
C.报错
D.None
18.f.flush()的作用( )
A.关闭文件
B.清空内容
C.刷新缓冲区写入磁盘
D.删除文件
19.Path("a/b/c.txt").suffix返回( )
A.c
B.txt
C..txt
D.c.txt
20.f.write("中")后有f.tell()可能返回( )
A.1
B.2
C.3
D.取决于编码
21.除零异常的except类型( )
A.OSError
B.ZeroDivisionError
C.FileNotFoundError
D.RuntimeError
22.json.dump中文默认( )
A.保留中文
B.转义为\\u
C.二进制
D.忽略
23.f.truncate(100)的作用( )
A.读100字符
B.文件截断为100字节
C.跳过100字节
D.报错
24.with open() as f后f.closed属性( )
A.True
B.False
C.None
D.不一定
25.open("f","x")模式的作用( )
A.独占创建
B.读
C.写
D.追加
三、程序分析题(共3题,每题6分,共18分)
26.import ______
data={"name":"张三","scores":[85,92,78]}
with open("data.json","w",encoding="utf-8") as f:
______.______(data,f,ensure_ascii=False,indent=2)
27.import csv
data=[["姓名","成绩"],["张三","85"],["李四","92"]]
with open("scores.csv","w") as f:
w=csv.writer(f)
for row in data:
w.write(row)
28.import json
data={"a":[1,2],"b":{"c":3}}
s=json.dumps(data)
d2=json.loads(s)
print(s[0])
print(type(d2))
print(d2["b"]["c"])
with open("test.json","w") as f:
json.dump(data,f)
import os
print(os.path.getsize("test.json"))
四、程序设计题(3题,29/30各6分/31各8分)
29.读取CSV文件scores.csv(含表头:姓名,语文,数学),计算每位学生的总分,写入result.csv(增加总分列)。样例:scores.csv含张三,85,92→result.csv张三,85,92,177
30.读取JSON配置文件config.json,修改其中的debug值为True并保存。若文件不存在创建默认配置。
31.编写程序合并两个文本文件
a.txt和
b.txt的内容写入
c.txt,每个文件内容之间用====分隔。使用try-except处理文件不存在异常。
五、综合应用题(共1题,每题12分,共12分)
32.设计日志分析系统:读取日志文件app.log,统计各日志级别(INFO/WARNING/ERROR)的数量,ERROR日志单独写入error.log,结果输出为JSON格式的report.json。使用csv/json/os模块综合实现。样例app.log含多行[INFO]xxx,[ERROR]yyy→report.json含统计{INFO:10,WARNING:5,ERROR:3}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$