1. 程式人生 > >用python去除檔案中的空格 || Tab || 回車

用python去除檔案中的空格 || Tab || 回車

  在最近的開發工作中,為了應付比賽趕進度,服務端的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說過,程式設計師就要有一個批量處理的意識,要學會發揮機器的力量,感覺還是很對的。