Bonjour,
Je voudrais savoir si il est possible d'avoir l'équivalent de:
en Python ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2#!/bin/sed -f /^$/d
merci
Bonjour,
Je voudrais savoir si il est possible d'avoir l'équivalent de:
en Python ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2#!/bin/sed -f /^$/d
merci
Salut,
Oui mais, il va falloir écrire nombre de lignes de code ne serait-ce que pour récupérer le nom des fichiers d'entrée et de sortie, les ouvrir, lire ligne à ligne, tester si elle est vide ou pas, l'écrire,...
C'est ce qui fait la différence entre un langage de programmation plutôt généraliste (comme Python) et un outil très spécialisé comme sed.
- W
D'accord, je me suis penché dessus ces derniers jours, sans résultat.
merci
j'ai essayé plusieurs choses mais l'idée principale du script est là:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 # -*- coding:utf-8 -*- import sys, re del sys.argv[0]; i = 0 while i < len(sys.argv): entrer = open(sys.argv[i], "r"); lignes = entrer.read(); entrer.close() for j in lignes: if re.search("^$", j): del j sortir = open(sys.argv[i], "w"); sortir.write(lignes); sortir.close(); i += 1
Salut,
Vous essayez de faire bien trop de choses à la fois!
Travaillez sur un seul fichier, puis vous fabriquez une fonction qui pourra être (éventuellement) appliquée à une liste de (nom de) fichiers.
Quand vous écrivez: "lignes = entrer.read()", vous récupérez tout le contenu et non une liste de chaînes de caractères.
problème: une chaine de caractère est itérable comme une liste. mais "for j in ..." ne va pas mettre dans "j" ce que vous attendez (une ligne) mais un caractère.
Pas besoin de re: si la ligne est vide sa longueur sera nulle (ou égale à 1 si vous y avez inclus les fins de lignes).
La première chose à faire est de créer un ficher test.txt contenant des lignes vides.
puis vous lancer la console Python, et vous regardez comment parcourir votre fichier ligne à ligne
avec les fins de lignes:
sans les fins de lignes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 >>> f = open('test.txt') >>> for line in f: print(line)
puis vous sautez les lignes vides, puis vous écrivez dans le fichier de sortie...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 >>> lines = open('test.txt').read().splitlines() >>> for line in lines: print(line)
- W
Partager