Hallo Leute,
bestimmt eine einfache Sache, bloß mit Datei-Verarbeitung habe ich noch nix machen müssen:
Ich möchte auf verschiedenen Rechnern die /etc/hosts durchsuchen und wenn eine bestimmte IP auftaucht,
die ganze Zeile löschen.
Hat da jemand etwas auf Lager...?
Vielen Dank!
okular
Hosts-Datei duchsuchen
Wo ist denn dein Problem, also an welcher Stelle kommst du nicht weiter?
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Ein Löschen einer Zeile in einer Datei ist nicht direkt möglich. Du musst die Datei ohne die betreffende Zeile neu schreiben.okular hat geschrieben:Ich möchte auf verschiedenen Rechnern die /etc/hosts durchsuchen und wenn eine bestimmte IP auftaucht,
die ganze Zeile löschen.
Naja, ich kann zwar den Anfang einer Zeile suchen/finden aber ich kann diese nicht löschen:
Problem ist das Löschen
Code: Alles auswählen
fil = open('file')
for l in fil.readlines():
if l.startswith('192.168.133.5'):
???
Code: Alles auswählen
from itertools import ifilterfalse
from shutil import move
selector = lambda line: line.startswith('192.168.133.5')
with open('orig', 'r') as reader:
with open('tmp', 'w') as writer:
writer.writelines(ifilterfalse(selector, reader))
move('tmp', 'orig')
Zuletzt geändert von jbs am Mittwoch 16. Januar 2013, 18:30, insgesamt 1-mal geändert.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Es ist jetzt aber nun wirklich nicht so, dass das der Kern waere oder es nicht anders ginge:
Code: Alles auswählen
from itertools import ifilterfalse
from shutil import move
with open('orig', 'r') as reader:
with open('tmp', 'w') as writer:
for line in reader:
if not line.startswith('...'):
writer.write(line)
move('tmp', 'orig')
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte