使用python 修改檔案內容

2021-07-06 02:02:44 字數 2332 閱讀 6334

做嵌入式時需要把windows 下的 ads 工程 專案移植到linux 下的gnu專案時候需要做大量重複的修改,比如把

abc     equ

1

修改為

#define     abc 1
如果用手工乙個個修改很浪費時間,所以就用python指令碼來做這些工作,發現很容易就搞定了(以前遇到類似問題總是用c**來寫,**量很多而且容易出錯!!)

源**如下:

def

func

(): ffrom=open("2440init.s","r")

fto=open("2440init1.s","w")

while

true:

l = ffrom.readline()

ifnot l:

break

if'equ'

in l:

temp = l.split("equ")

temp1 = '#define ' + temp[0] + temp[1]

#print temp1

fto.write(temp1)

else:

temp1 = l

fto.write(temp1)

if __name__ == "__main__":

func()

用乙個檔案 2440init.s 來測試下:

abc             equ

1pds equ

9

最終生成的檔案2440init1.s 內容如下所示:

#define  abc                            1

#define pds 9

def

func

(): input = open("2440init.s")

lines = input.readlines()

input.close()

output = open("2440init.s",'w');

for line in lines:

#print line

ifnot line:

break

if'equ'

in line:

temp = line.split("equ")

temp1 = '#define ' + temp[0] + temp[1]

output.write(temp1)

else:

output.write(line)

output.close()

if __name__ == "__main__":

func()

如果乙個比較大的工程檔案,需要遍歷工程中的每乙個檔案。

import os

defdirec

():for d,fd,fl in os.walk('/dir to/gun-ucos'):

for f in fl:

sufix = os.path.splitext(f)[1][1:]

if ( (sufix == 'h') or (sufix == 'c') ):

#print sufix

func(d + '/' + f)

上面的for d,fd,fl in os.walk('/dir to/gun-ucos')執行完畢之後 fl 為包含檔名的列表,d為目錄。然後再通過 splitext 函式獲取副檔名。

函式split 用途是把乙個字串分割開來,比如乙個字串sky_region_dlgtpl執行split('dlgtpl')之後就會變成乙個列表['#ifndef sky_region_', '\n']

如果只是簡單的替換可以用replace函式,比如把sky_region_dlgtpl替換為sky_region_dhru

if ('sky_region_dlgtpl'

in line) :

line = line.replace('dlgtpl','dhru')

注意到replace方法是不把字串本身替換的,如果要修改字串本身還需要有個賦值過程。

用python修改檔案內容修改txt內容的3種方法

用python修改檔案內容修改txt內容的3種方法 方法一 修改原檔案方式 def updatefile file old str,new str 替換檔案中的字串 param file 檔名 param old str 就字串 param new str 新字串 return file data ...

用python修改檔案內容修改txt內容的3種方法

用python修改檔案內容修改txt內容的3種方法 方法一 修改原檔案方式 def updatefile file,old str,new str 替換檔案中的字串 param file 檔名 param old str 就字串 param new str 新字串 return file data ...

python 檔案內容修改替換操作

當我們讀取檔案中內容後,如果想要修改檔案中的某一行或者某乙個位置的內容,在python中是沒有辦法直接實現的,如果想要實現這樣的操作只能先把檔案所有的內容全部讀取出來,然後進行匹配修改後寫入到新的檔案中。例項 如下所示 開啟舊檔案 f open file text.txt r encoding ut...