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