Python 实验九 文件与数据格式化
实验目的
- 掌握文件的基本操作
- 理解一、二维和高维数据的格式化过程
- 掌握 csv 和 json 格式的相互转换
- 综合应用组合数据类型与 CSV 和 JSON 数据格式编写简单的应用程序
实验内容
练习一
题目
将提供的 test.csv 文件,具体内容如下:

编程读入该文件,转换成 JSON 格式文件,并以文件名 out.json 输出。转换
后的结果如下所示:
[
{
},"同比": "120.7", "城市": "北京", "定基": "121.4", "环比": "101.5"
{
}"同比": "127.3", "城市": "上海", "定基": "127.8", "环比": "101.2"
….
]代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27#方法一:
import json
fr = open("test.csv","r")
ls = []
for line in fr:
line = line.replace("\n","")
ls.append(line.split(','))
fr.close()
fw = open("test.json","w")
for i in range(1,len(ls)):
ls[i]= dict(zip(ls[0],ls[i]))
json.dump(ls[1:],fw,sort_keys=True,indent=4,ensure_ascii=False)
fw.close()
#方法二:
import json
with open("test.csv","r") as fr:
ls = []
for line in fr:
line = line.replace("\n", "")
ls.append(line.split(','))
fr.close()
fw = open("test.json","w")
for i in range(1,len(ls)):
ls[i]= dict(zip(ls[0],ls[i]))
json.dump(ls[1:],fw,sort_keys=True,indent=4,ensure_ascii=False)
fw.close()练习二
题目
编写程序制作英文学习字典,词典基本功能如下:
(1) 程序读取源文件路径下的 txt 格式词典文件,若没有就创建一个。 词典文件存储方式为 “英文单词 中文单词”,每行仅有一对中英文释义;
(2) 程序有添加功能,输入英文单词,如果没有可以添加中文释义,如果有就显示”已经存在,不能添加”;
(3) 程序有查询功能,如果存在,则显示其中文释义,不存在就显示不存在;
(4) 程序有正常退出的操作。代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54import os
keys = []
dic = {}
def readdict():
if os.path.exists("dictionary.txt"):
fr = open('dictionary.txt','r')
else:
fr = open('dictionary.txt','w+')
for line in fr:
line = line.replace("\n","")
v = line.split(':')
dic[v[0]]= v[1]
keys.append(v[0])
fr.close()
def writedict(key,value):
with open('dictionary.txt','a')as fw:
fw.write(key+':'+value+'\n')
def mydict():
n = input("请输入进入相应模块(添加,查询,退出)")
if n == "添加":
key = input("请输入英文单词:")
if key not in keys:
value =input("字典中未找到单词'{}'的中文释义,请输入该单词的中文意思,添加进字典中!".format(key))
dic[key] = value
keys.append(key)
writedict(key,value)
else:
print("单词'{}'已存在,不能添加".format(key))
return 0
elif n == "查询":
key = input("请输入英文单词:")
if key not in keys:
print("英文单词'{}'不在字典内".format(key))
else:
print(dic[key])
return 0
elif n == "退出":
return 1
else:
print("输入有误")
return 0
def main():
readdict()
while True:
n = mydict()
if n == 1:
break
if n == 0:
continue
main()
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 姚永坤的小窝!
评论