[英]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.