Search & Replace Tool gesucht

Torsten Ernst

Mitglied
Kein Problem, ich habe "ae" daraus gemacht. Leider hat es wieder nicht geklappt. Kannst du bitte noch einmal den Code prüfen, wäre wirklich super wenn wir es hinkriegen würden. Einen aktuellen Screenshot habe ich angehängt.

MfG, Torsten
 

Anhänge

  • python1.png
    python1.png
    24,9 KB · Aufrufe: 16

ikosaeder

Teekannen-Agnostiker
Gerade unter Windows 7 mit Python 2.7 getestet und es funktioniert zuverlässig. Trotzdem hier mal eine Fassung ohne Ausnahmebehandlung. Vielleicht hilft das.
Python:
#!/usr/bin/python
import sys

  #Dateiname wird als Parameter dem Programmaufruf uebergeben
filename=sys.argv[1]
# Oeffnet die Datei lesend
f = open( filename, 'rU')
# Erzeugte eine Liste a mit allen Zeilen der Datei
a = f.readlines()
# Datei schliessen
f.close()
#Test ob letzte Zeile leer
if len(a[-1].strip()) == 0 :
#Letzte Zeile aus der Liste loeschen
  a.pop()
#Ausgaben der Zeilen in die urspruengliche Datei
f=open(filename,'wB')
f.write("".join(a))
f.close
 

Torsten Ernst

Mitglied
Vielen Dank für deine Geduld. Ich habe Python 3.4 installiert, liegt es evtl. daran? Geht immer noch nicht, siehe Screenshot. Oder muss noch etwas zusätzlich installiert werden?

MfG, Torsten
 

Anhänge

  • python2.png
    python2.png
    31 KB · Aufrufe: 14

ikosaeder

Teekannen-Agnostiker
Das ist ja jetzt eine andere Fehlermeldung. Wie hast du es denn aufgerufen?
Probier es erst mal an einer Datei. Also python Skriptname Dateiname
 

Torsten Ernst

Mitglied
Ganz normal aufgerufen wie oben beschrieben. Habe es nun mit einer Datei versucht, siehe Screenshot.

MfG, Torsten
 

Anhänge

  • python3.png
    python3.png
    2,4 KB · Aufrufe: 17

ikosaeder

Teekannen-Agnostiker
Bei Python 3 muss die Datei offensichtlich mit wb geöffnet werden
w steht für write und b für Binary.
 

Torsten Ernst

Mitglied
Das hatte ich bereits probiert, damit werden alle Zeilen gelöscht. Das ist der Code den ich jetzt verwendet habe:

Code:
#!/usr/bin/python
import sys
  #Dateiname wird als Parameter dem Programmaufruf uebergeben
filename=sys.argv[1]
# Oeffnet die Datei lesend
f = open( filename, 'rU')
# Erzeugte eine Liste a mit allen Zeilen der Datei
a = f.readlines()
# Datei schliessen
f.close()
#Test ob letzte Zeile leer
if len(a[-1].strip()) == 0 :
#Letzte Zeile aus der Liste loeschen
  a.pop()
#Ausgaben der Zeilen in die urspruengliche Datei
f=open(filename,'wb')
f.write("".join(a))
f.close

Sonst muss ich es noch einemal mit Python 2.7 testen.

MfG, Torsten
 

Anhänge

  • python4.png
    python4.png
    8,3 KB · Aufrufe: 14

EdwardBlack

Grünschnabel
Hallo, es gab ja bereits ein Thema hierfür von Torsten Ernst in diesem Forum. https://www.tutorials.de/threads/search-replace-tool-gesucht.400895/ Leider habe ich keine Erlaubnis dort einen Beitrag zu erstellen. Bei meinem Versuch hat leider keine der drei Möglichkeiten funktioniert.

Das Skript und das C++ Programm von ikosaeder funktionieren nicht und die Notepad++ Methode hat ebenfalls nicht im geringsten funktioniert.

Wie kann ich z.B. aus 1000 .txt Dateien ein beliebiges Wort suchen und alle Zeilen wo dieses Wort vorkommt entfernen? Am liebsten wäre mir ein Python script oder C++ Programm.

Danke im voraus für eure Hilfe!
 

sheel

I love Asm
Hi

ich denke schon, dass du hier Beiträge erstellen kannst, habs verschoben.
(Falls sich doch Probleme beim Antworten ergeben bitte eine Nachricht
über den Link "Private Nachricht" in meiner Signatur unten)

hat ebenfalls nicht im geringsten funktioniert.
Das bedeutet...?
Was ist stattdessen passiert?
Wie hast du die Sachen genau verwendet?