目录
练习2.6
1、选择题
2、判断题
3、程序设计题
(1) 为进行读操作,打开二进制文件 abe 的正确语句是。__B____
A. open (abc,b) B. open(abc', 'rb)
C. open(abc', 'r+') D. open(abc', r')
(2) 函数 open0的作用不包括__D____。
A. 读写对象是二进制文件,还是文本文件
B. 读写模式是只读、读写、添加,还是修改
C. 建立程序与文件之间的通道
D. 是顺序读写,还是随机读写
(3) 为进行写入,打开文本文件 flel.txt 的正确语句是____A_____
A. f1 = open('file1.txt', 'a') B. f1 = open('file1', 'w')
C. f1 = open('file1', 'r+') D. f1 = open('file1.txt', 'w+')
(4)下列不是文件对象写方法的是。__D__
A.write() B.writeline() C.writelines() D. writefile()
(5) 以下文件打开方式中,两种打开效果相同的是_____AB______
A. open(filename,'r') B. open(filename,'w+')
C. open(filename,'rb') D. open(filename,'w')
(1) 在 open()函数的打开方式中,有“+”,表示文件对象创建后,将进行随机读写。无“+”,表示文件对象创建后,将进行顺序读写。 (✖)
(2) close()函数的作用是关闭文件。 (✖)
close 函数的主要作用是关闭文件
(3) 在 Python 中,显式关闭文件没有实际意义。 (✖)
未能显式关闭资源,会让资源打开时长远超预期;在退出 Python 时可能会导致严重问题。
(4) 用 read()方法可以设定一次要读出的字节数量。设计这个数量的合适原则: 一次尽可能多读:如果需要,最好全读:如一次不能读完,则可按缓冲区大小读取。 (✖)
(1)建立一个存储人名的文件,输入时不管大小写,但在文件中的每个名字都以首字母大写、其余宁母小写的格式存放。
def normalize_name(name):
return name.capitalize()
if __name__ == '__main__':
# 建立一个存储人名的文件,输入时不管大小写,
# 但在文件中的每个名字都以首字母大写、其余宁母小写的格式存放。
file_name = "./name.txt"
while True:
names = str(input("请输入人名,当输入q时退出:"))
if names != 'q':
with open(file_name, 'a') as file:
normalized_name = normalize_name(names)
file.write(normalized_name + '\n')
else:
sys.exit(0)
(2)有两个文件 a.txt 和 b.txt,先将两个文件中的内容按照字母表顺序排序,然后创建一个文件 c.txt,存储为 a.txt 与 b.txt 按照字母表顺序合并后的内容。
def merge_files(file_a, file_b, merged_file):
# 打开文件 a.txt 和 b.txt
with open(file_a, 'r', encoding='utf-8') as file_a, open(file_b, 'r', encoding='utf-8') as file_b:
# 读取文件 a.txt 和 b.txt 的内容
file_a_content = file_a.readlines()
file_b_content = file_b.readlines()
# 对两个文件的内容进行排序
sorted_content = sorted(file_a_content + file_b_content)
# 创建一个新的文件 c.txt,并写入排序后的内容
with open(merged_file, 'w', encoding='utf-8') as merged_file:
for line in sorted_content:
merged_file.write(line)
# 调用函数 merge_files(),实现 a.txt 和 b.txt 文件的合并
if __name__ == '__main__':
merge_files('./a.txt', './b.txt', './c.txt')