python修改文件(fileinput)


上網查了好多方法都是將文件一行一行都進來,然後新開一個文件指針,將文件再一行行寫進新文件裏。
感覺不是太好,看到這個fileinput的庫,發現大同小異,不過有一點就是可以在原文件上修改,不用新開文件。


舉個簡單的例子:
我有json文件1.json是如下格式:

/* 1 */
{
    "_id" : "18372776",
    "city" : "廣州",
    "gender" : "woman",
    "birthday" : " 巨蟹座",
    "is_vip" : 1,
    "contribution" : 964,
    "user_name" : "寶穎穎"
}

/* 2 */
{
    "_id" : "133155049",
    "city" : "廣州",
    "gender" : "woman",
    "birthday" : " 獅子座",
    "is_vip" : 0,
    "contribution" : 42,
    "user_name" : "魚之頭"
}

我想把文件裏面的/* ... */換成一個,,可以通過以下的代碼實現:

import fileinput

str1 = ','
for line in fileinput.input('1.json', inplace= True):
    if line.startswith(r'/*'):
        print str1.strip()
    else:
        print line.strip()

其中的strip()是爲了防止寫入多餘的空行。
這樣的操作很簡單,只能整行操作,也有侷限性,我沒有具體去研究這個庫,只是簡單記錄了一下…
That`s all.

發佈了105 篇原創文章 · 獲贊 159 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章