python写json文件
# coding: UTF-8
__author__ = 'Jum'
'''
try:
f=open('./log.txt','a') #r是读,w是写,a是追加
#文件不存在就新建文件
f.write('helloworld')
finally:
if f:
f.close()
#这个写法不够简洁
'''
print 'the number of area'
area_num = input()
i = 1
with open('./service1.json', 'a') as f:
f.write('{')
while i <= area_num:
str3 = ''
j = 1
while j <= area_num:
if j != i:
str3 = str3 + '''
{
"rootport":%d,
"rootname":"area%d"
},
''' % (40009 + j, j)
j = j + 1
str2 = '''
"remoteport": [
{
"rootport": 40005,
"rootname": "gate"
},
{
"rootport": 40006,
"rootname": "logproc"
},
%s
{
"rootport": 40007,
"rootname": "messenger"
},
{
"rootport": 40008,
"rootname": "admin"
}
],
"name": "area%d",
"db": ["jianghu", "profile", "logs"],
"cache": ["memcached", "redis"],
"app": "app.server_area",
"reload": "app.area.reload",
"log": "app/logs/area1.log"
''' % (str3, i)
str1 = '''
"area%d": {
"rootport": %d,
%s
},''' % (i, i + 40009, str2)
i = i + 1
with open('./service1.json', 'a') as f:
f.write(str1)
with open('./service1.json', 'a') as f:
f.write('''"redispath": "C:\\\Users\\\Administrator\\\Downloads\\\Redis-x64-3.0.501"''')
with open('./service1.json', 'a') as f:
f.write('}')
学习总结
1.python的文件打开方式和C语言是一样的,高级语言都有try...finally...来避免文件打不开的错误,但是写法复杂了些,python则提供类 with open() as file的简单方法来实现文件的操作
2.在写入文件的过程中字符串的拼接,可以实现格式化的文本。但是字符串的拼接遇到了很多不好理解的问题
如:
'''qwer\\\\qwer'''和r'''qwer\\\\qwer'''的结果不一样,以及'''"qwer\\\qwer"'''以及r'''"qwer\\\qwer"'''的结果是十分
''''''中是字符串的正常转义
r''''''中引号不转义但是转义字符\还是要转义
3.这种字符串的拼接十分的麻烦,下一篇将使用python对象转json文件的方法来处理