在最近的開發工作中,爲了應付比賽趕進度,服務端的json文件都是人工寫的,寫完之後發現格式都是十分規整,易於人閱讀的json,但是客戶端請求不需要那些爲了格式而在json裏面添加的空格、tab、回車等等沒用的字符,遂用python寫一腳本,去除文件中的空格、回車、換行。
原json文件:
{
"amount" : "2",
"content" : [
{ "category_id" : 0,
"name" : "古典文學",
"category_json_url" : "http://172.16.242.14:8080/source/history/history.json"
}
,
{
"category_id" : 1,
"name" : "流行音樂",
"category_json_url" : "http://172.16.242.14:8080/source//popmusic/popmusic.json"
}
]
}
用腳本處理後的文件:
{"amount":"2","content":[{"category_id":0,"name":"古典文學","category_json_url":"http://172.16.242.14:8080/source/history/history.json"},{"category_id":1,"name":"流行音樂","category_json_url":"http://172.16.242.14:8080/source//popmusic/popmusic.json"}]}
下面上代碼:
def stripFile(oldFName,newFName):
'''remove the space or Tab or enter in a file,and output to a new file in the same folder'''
fp = open(oldFName,"r+")
newFp = open(newFName,"w")
for eachline in fp.readlines():
newStr = eachline.replace(" ","").replace("\t","").strip()
#print "Write:",newStr
newFp.write(newStr)
fp.close()
newFp.close()
if __name__ == "__main__":
oldName = raw_input("input file name:")
nameList = oldName.split(".")
newName = "%s%s%s" % (nameList[0],"_new.",nameList[1])
stripFile(oldName,newName)
print "finish output to new file:",newName
使用腳本時,如果腳本文件和要處理的文件在同一目錄下,則直接輸入文件名,如果不在,需要輸入文件的完整路徑。
記得聽Cliff說過,程序員就要有一個批量處理的意識,要學會發揮機器的力量,感覺還是很對的。
另外發現一篇說明python字符串拼接效率問題的文章,鏈接如下:http://www.cnpythoner.com/post/67.html。