[英]Remove comment lines from a file
我正在創建一種文件類型來存儲程序中的信息。 文件類型可以包含以#開頭的行,例如:
# This is a comment.
如圖所示,行前面的#表示注釋。 我已經用Python編寫了一個程序,可以讀取以下文件:
fileData = []
file = open("Tutorial.rdsf", "r")
line = file.readline()
while line != "":
fileData.append(line)
line = file.readline()
for item in list(fileData):
item.strip()
fileData = list(map(lambda s: s.strip(), fileData))
print(fileData)
如您所見,它將獲取文件,將每一行添加為列表中的項目,並去除\\ n的項目。 到現在為止還挺好。
但是這些文件通常包含我所做的注釋,因此該程序會將它們添加到列表中。
有沒有一種方法可以刪除列表中以#開頭的所有項目?
編輯:讓事情變得更清晰:注釋不會像這樣:
Some code:
{Some Code} #Foo
他們會像這樣:
#Foo
Some code:
{Some Code}
您可以直接在for
循環中處理行:
with open("Tutorial.rdsf", "r") as file:
for line in file:
if line.startswith('#'):
continue # skip comments
line = line.strip()
# do more things with this line
僅在需要隨機訪問(例如,需要訪問特定索引的行)時才將它們放入列表。
我使用了with
語句來管理打開的文件,當Python到達with
塊的末尾時,該文件將自動為您關閉。
檢查前導#
符號很容易。
更改此:
while line != "":
fileData.append(line)
line = file.readline()
對此:
while line != "":
if not line.startswith("#"):
fileData.append(line)
line = file.readline()
但是您的程序執行起來有些復雜。 請參閱說明文件中有關for line in file:
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.