繁体   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