![](/img/trans.png)
[英]How to delete one line before a specific word in a text file in python
[英]Search a line in text file and write a word before it
我試圖解析文本文件搜索功能,並將i
添加到該行。 我的輸入文件是一個文本文件,其中數據為列格式。 我閱讀了此文本文件,搜索所有帶有參數的函數,並添加了一個額外的列,該列將i
寫入具有參數的函數的每一行,並將v
寫入具有參數的函數的每一行。 我使用的邏輯是
filter_list = ["int","unsigned","void","*"]
for line in f:
if ".text" in line:
if "()" in line:
columns = line.split(" ")
columns.insert(0, "v")
g.write(" ".join(columns)+" ")
continue
if "(" in line:
for word in filter_list:
columns = line.split()
columns.insert(0, "i")
g.write(" ".join(columns)+" ")
f.close()
g.close()
這不會給出正確的輸出。 這種邏輯會繼續在第一個參數之后將i
添加到完整行,例如
i 00010518 .text hl_mount_storage(FileSystemObject&, char i 00010518 .text hl_mount_storage(FileSystemObject&, char i 00010518 .text hl_mount_storage(FileSystemObject&, char i 00010518 .text hl_mount_storage(FileSystemObject&, char a 2007c000 .data g_pkt_hist_wptr
此行針對過濾器中的每個單詞,將g.write
重復到輸出文件中:
for word in filter_list:
所以目前是4倍( filter_list
的長度)。 如果再添加一個單詞,您將獲得同一行的5個副本。
由於您還是不使用word
或filter_list
,因此只需刪除整個for
循環即可:
if "(" in line:
columns = line.split()
columns.insert(0, "i")
g.write(" ".join(columns)+" ")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.