<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
fp = open('D://程式碼開發//Python.path//jhp//fadd.txt', 'r') #指定檔案 s = fp.read() #將指定檔案讀入記憶體 fp.close() #關閉該檔案 a = s.split('n') a.insert(-1, 'a new line') #在第 LINE+1 行插入 s = 'n'.join(a) #用'n'連線各個元素 fp = open('D://程式碼開發//Python.path//jhp//fadd.txt', 'w') fp.write(s) fp.close()
結果:
"properties":{
"zookeeper.connect":"zookeeper.com:2015",
"druid.discovery.curator.path":"/druid/discovery",
"druid.selectors.indexing.serviceName":"druid/overlord",
"commit.periodMillis":"12500",
"consumer.numThreads":"1",
"kafka.zookeeper.connect":"kafkaka.com:2181,kafka.com:2181,kafka.com:2181",
"kafka.group.id":"test_dataSource_hod_dd"
a new line
}
生產環境需要對大量的json檔案進行寫操作,在指定節點中插入一個屬性。如下:
{ "dataSources":{ "test_dataSource_hod":{ "spec":{ "dataSchema":{ "dataSource":"test_dataSource_hod", "parser":{ "type":"string", "parseSpec":{ "timestampSpec":{ "column":"timestamp", "format":"yyyy-MM-dd HH:mm:ss" }, "dimensionsSpec":{ "dimensions":[ "method", "key" ] }, "format":"json" } }, "granularitySpec":{ "type":"uniform", "segmentGranularity":"hour", "queryGranularity":"none" }, "metricsSpec":[ { "name":"count", "type":"count" }, { "name":"call_count", "type":"longSum", "fieldName":"call_count" }, { "name":"succ_count", "type":"longSum", "fieldName":"succ_count" }, { "name":"fail_count", "type":"longSum", "fieldName":"fail_count" } ] }, "ioConfig":{ "type":"realtime" }, "tuningConfig":{ "type":"realtime", "maxRowsInMemory":"100000", "intermediatePersistPeriod":"PT10M", "windowPeriod":"PT10M" } }, "properties":{ "task.partitions":"1", "task.replicants":"1", "topicPattern":"test_topic" } } }, "properties":{ "zookeeper.connect":"zookeeper.com:2015", "druid.discovery.curator.path":"/druid/discovery", "druid.selectors.indexing.serviceName":"druid/overlord", "commit.periodMillis":"12500", "consumer.numThreads":"1", "kafka.zookeeper.connect":"kafkaka.com:2181,kafka.com:2181,kafka.com:2181", "kafka.group.id":"test_dataSource_hod_dd" } }
需要在最後的properties節點中新增一個"druidBeam.randomizeTaskId":"true"屬性。
大概的思路如下:
我覺得稍微有點難的地方是在確認插入位置的地方。我們知道的是"druid.selectors.indexing.serviceName":"druid/overlord",這個東西肯定在這個節點中,那我只要能找到這個東西,然後在他的後面 插入就OK了。
好了,思路已經有了,寫程式碼吧。
#!/usr/bin/python # coding:utf-8 import os old_string = '"druid/overlord"' new_string = ('"druid/overlord",' + 'n ' + '"druidBeam.randomizeTaskId":"true",') def insertrandomproperty(file_name): if '.json' in file_name: with open(file, 'r') as oldfile: content = oldfile.read() checkandinsert(content, file) else: pass def checkandinsert(content, file): if 'druidBeam.randomizeTaskId' not in content: # to avoid ^M appear in the new file because of different os # we replace r with '' new_content = content.replace(old_string, new_string).replace('r', '') with open(file, 'w') as newfile: newfile.write(new_content) else: pass if __name__ == '__main__': files = os.listdir('/home/tranquility/conf/service_bak') os.chdir('/home/tranquility/conf/service_bak') for file in files: insertrandomproperty(file)
就是在記憶體中更新內容,然後重新寫回到檔案中。程式碼只是粗略的表達了思路,可以根據需求繼續修改優化。
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45