任务描述
本关任务:编写一个能读取文件内容的函数。
相关知识
为了完成本关任务,你需要掌握:1.文件读写,2.异常处理。
编程要求
根据提示,在右侧编辑器补充代码,如文件存在,则输出文件信息,若文件不存在,则输出无法打开指定的文件!
,若文件编码方案和打开指定编码方案不同,则输出指定了未知的编码!
,若读取文件时解码错误,则输出读取文件时解码错误!
测试说明
平台会对你编写的代码进行测试:
测试输入: 致橡树.txt
,utf-8
说明:致橡树.txt
文件存在,编码方案encoding默认为utf-8 预期输出:
我如果爱你——
绝不像攀援的凌霄花,
借你的高枝炫耀自己;
我如果爱你——
绝不学痴情的鸟儿,
为绿荫重复单调的歌曲;
也不止像泉源,
常年送来清凉的慰藉;
也不止像险峰,
增加你的高度,衬托你的威仪。
甚至日光,
甚至春雨。
不,这些都还不够!
我必须是你近旁的一株木棉,
作为树的形象和你站在一起。
根,紧握在地下;
叶,相触在云里。
每一阵风过,
我们都互相致意,
但没有人,
听懂我们的言语。
你有你的铜枝铁干,
像刀,像剑,也像戟;
我有我红硕的花朵,
像沉重的叹息,
又像英勇的火炬。
我们分担寒潮、风雷、霹雳;
我们共享雾霭、流岚、虹霓。
仿佛永远分离,
却又终身相依。
这才是伟大的爱情,
坚贞就在这里:
爱——
不仅爱你伟岸的身躯,
也爱你坚持的位置,
足下的土地。
测试输入: tt.txt
,utf-8
说明:tt.txt
不存在,编码方案encoding默认为utf-8 预期输出: 无法打开指定的文件!
测试输入: 致橡树.txt
,ajgfahajfhak
; 说明:致橡树.txt
存在,编码方案encoding为ajgfahajfhak
预期输出: 指定了未知的编码!
import os
def file(name,encoding = 'utf-8'):
if os.path.isfile(name):
if encoding=='utf-8':
f=open(name,'r',encoding=encoding)
fi=f.read()
print(fi,end='')
f.close()
else:
print("指定了未知的编码!")
else:
print("无法打开指定的文件!")
if __name__ == '__main__':
name,encoding = input().split(',')
file(name=name,encoding=encoding)
任务描述
本关任务:编写一个将1-9999之间的素数分别写入三个文件中(1-99之间的素数保存在a.txt中,100-999之间的素数保存在b.txt中,1000-9999之间的素数保存在c.txt中)。
相关知识
为了完成本关任务,你需要掌握:1.文件读写,2.循环语句,3.条件语句,4.函数定义及调用。
编程要求
根据提示,在右侧编辑器补充代码,将1-99之间的素数保存在a.txt中,100-999之间的素数保存在b.txt中,1000-9999之间的素数保存在c.txt中。
测试说明
本次题目不需输入输出,只需将规定的素数保留到规定文件中,平台会编写测试脚本对3个文件进行测试。 a.txt中数据格式为
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
from math import sqrt
import os
def is_prime(n):
"""判断素数的函数"""
assert n > 0
for factor in range(2, int(sqrt(n)) + 1):
if n % factor == 0:
return False
return True if n != 1 else False
def store():
for i in range(1,10000):
if 1< i and i < 100:
if is_prime(i):
f=open("a.txt",'a')
f.write(str(i)+"\n")
f.close()
elif 99
任务描述
本关任务:遍历文件夹,采用深度优先遍历策略,以便输出要求的内容。
相关知识
为了完成本关任务,你需要掌握:1.os模块中相关文件目录操作。
编程要求
根据提示,在右侧编辑器补充代码,遍历文件夹,并输出规定内容。
测试说明
平台会对你编写的代码进行测试: 如有一目录如下:
对上述目录进行测试 测试输入:C:\\test
; 预期输出: C:\test\D1
C:\test\D1\1.txt
C:\test\D1\F1
C:\test\D1\F1\3.txt
C:\test\D2
C:\test\D2\2.py
import os
def listDir(director):
path=director
for files in os.listdir(path):
filepath=os.path.join(path,files)
if os.path.isdir(filepath):
print(filepath)
listDir(filepath)
else:
print(filepath)
任务描述
本关任务:编写一个能读写json文件的程序。
相关知识
为了完成本关任务,你需要掌握:1.json模块,2.读取txt文件,3.列表字典的使用
编程要求
根据提示,在右侧编辑器补充代码,输出要求的内容。
测试说明
平台会对你编写的代码进行测试:
测试输入: 文件与异常/src/step4/book.txt
预期输出: [{'书名': 'python程序设计', '价钱': '39'}, {'书名': '数据结构', '价钱': '49'}, {'书名': 'C语言程序设计', '价钱': '42'}]
import json
def main(name):
ans=[]
with open(name,'r') as f:
title = f.readline()
title = title.replace("\n","").split(" ")
while True:
content = f.readline()
if content == "":break
content = content.replace("\n","").split(" ")
temp = dict(zip(title,content))
ans.append(temp)
print(ans)
if __name__ == '__main__':
name = input()
main(name)