Je crée un type de fichier pour stocker des informations de mon programme. Le type de fichier peut inclure des lignes commençant par #, comme:Supprimer tous les articles dans la liste commençant par #
# This is a comment.
Comme le montre, le # devant une ligne indique un commentaire. J'ai écrit un programme en Python qui peut lire ces fichiers:
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)
Comme vous pouvez le voir, il prend le fichier, ajoute chaque ligne comme un élément dans une liste, et les bandes les éléments de \ n. Jusqu'ici tout va bien.
Mais souvent ces fichiers contiennent des commentaires que j'ai faits, et un tel programme les ajoute à la liste.
Y at-il un moyen de supprimer tous les éléments de la liste en commençant par #?
Edit: Pour rendre les choses un peu plus clair: les commentaires ne seront pas comme ceci:
Some code:
{Some Code} #Foo
Ils seront comme ceci:
#Foo
Some code:
{Some Code}
N'utilisez pas de boucle while et parcourez directement le fichier. Votre boucle readline' peut être remplacée par 'fileData = file.readlines() '(pluriel) ou' fileData = liste (fichier) '. –
Votre boucle 'for' effaçant les lignes ne fonctionne pas du tout parce que vous n'attribuez jamais les lignes dénudées. Vous n'avez pas besoin d'appeler 'list()' no un objet déjà une liste. –
Voir [Ce qui est parfait homologue en Python pour "while not eof"] (// stackoverflow.com/q/15599639) –