簡體   English   中英

刪除txt文件中的特定部分

[英]Delete specific parts in a txt file

我正在處理一個 txt 文件,在我需要的數據之間還有我想刪除的信息。 例如,txt 文件是這樣構建的:

|important|data|that|I|need|to|keep|
-------------------------------
---------------
----------------
info|I|dont|need|
----------------
---------------
------------------------------
|important|data|that|I|need|to|keep
|I|want|to|keep|this|info|
-------------------------------
---------------
----------------
info|I|dont|need|
----------------
---------------
------------------------------

如何刪除破折號之間的所有內容?

當我閱讀文件時,我想要這樣的東西:

|important|data|that|I|need|to|keep|
|important|data|that|I|need|to|keep
|I|want|to|keep|this|info|

更新:是否可以只刪除破折號之間的所有內容? 它們之間的信息格式可能不同,所以我想找到一個適合所有人的解決方案

類型str帶有一個特性startswith來檢查字符串是否以特定的用戶定義字符開頭。

可以在以下文檔中找到更多信息 - python startswith

with open("<file_name>.txt", "r") as f:
    for line in f:
        if line.startswith("|"):
            print(line)

結果:

|important|data|that|I|need|to|keep|
|important|data|that|I|need|to|keep
|I|want|to|keep|this|info|

閱讀每一行以列出並相應地應用理解如下。 添加您想要保留在列表B中的關鍵字並使用它。

with open('file.txt') as f:
    lines = [line.rstrip('\n') for line in f]


B = ['important','want']

mask = [word for word in lines if any(want in word for want in B)]
mask = [w.replace('-', '') for w in mask]
mask ='\n'.join(mask)
print(mask)

output#

|important|data|that|I|need|to|keep|
|important|data|that|I|need|to|keep
|I|want|to|keep|this|info|

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM