簡體   English   中英

從文件中刪除注釋行

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

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