Seite 1 von 1

löschen von zeilen und spalten

Verfasst: Mittwoch 7. September 2005, 14:12
von b
hallo!
ich habe eine textdatei mit ein paar zeilen am anfang und anschließend 5 spalten.
jetzt will ich die zeilen löschen und spalte 1 und 4 .

kann mir da jemand helfen?

lg

Verfasst: Mittwoch 7. September 2005, 14:26
von jens

Verfasst: Mittwoch 7. September 2005, 14:32
von b
hm.
ich will ja keine vergleiche machen sondern lediglich zeilen bzw spalten überlesen und den rest in ne andere datei schreiben.

Verfasst: Mittwoch 7. September 2005, 14:36
von jens
Das Prinzip ist aber das selbe...
Datei in einer for-Schleife in eine neuen Datei schreiben und dabei die ersten Zeilen auslassen... fertig.

Verfasst: Mittwoch 7. September 2005, 15:49
von XT@ngel
Durch welche Zeichen sind die Spalten getrennt?
Ansonsten hat jens recht.
Das ganze in einer for Schleife einlesen, die Zeilen am Anfang kannste einfach übersehen.
Dann bei Zeile x wo die fünf spalten sind ein split() machen und Nummer 1 und 4 von der Liste in eine neue Datei schreiben oder ausgeben.

MfG
Andreas

Verfasst: Donnerstag 8. September 2005, 11:16
von b
die spalten sind durch leerzeichen getrennt, wobei die einzelnen spalten in der länge variieren und somit auch die anzahl der leerzeichen in den einzelnen spalten unterschiedlich ist.

Verfasst: Donnerstag 8. September 2005, 12:05
von heftic
Importiere die Datei nach Excel. (In Excel: Daten->Externe Daten importieren->Datne importieren)

Dann kannst du versuchen sie in ein CSV-File zu konvertieren. Somit sollte das mit dem Splitten auf jeden Fall klappen.
Musst nur nachsehen mit welchen Zeichen die einzelnen Spalten getrennt wurden.

Jetzt kannste die Spalten mit einer for-Schleife durchgehen und die Inhalte mit eine Liste herrausfiltern.

Verfasst: Donnerstag 8. September 2005, 14:10
von mitsuhiko
Hier meine Lösung

Quelldatei

Code: Alles auswählen

Zeile 1
Zeile 2
Zeile 3
Zeile 4
Zeile 5
Spalte 1 Zeile 1    Spalte 2 Zeile 1    Spalte 3 Zeile 1    Spalte 4 Zeile 1    Spalte 5 Zeile 1
Spalte 1 Zeile 2    Spalte 2 Zeile 2    Spalte 3 Zeile 2    Spalte 4 Zeile 2    Spalte 5 Zeile 2
blub                blub                blub                blub                blub
grml                grml                grml                grml                grml
Konverter

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import re

lines = file("convert.txt")
output = file("output.txt", "w")

regex = re.compile("^(.*?)  +(.*?)  +(.*?)  +(.*?)  +(.*?)$")

for line in lines:
    m = regex.search(line)
    if m is None: continue
    output.write(m.group(2) + "\t" +
                 m.group(3) + "\t" +
                 m.group(4) + "\n")

lines.close()
output.close()
Ausgabedatei

Code: Alles auswählen

Spalte 2 Zeile 1        Spalte 3 Zeile 1        Spalte 4 Zeile 1
Spalte 2 Zeile 2        Spalte 3 Zeile 2        Spalte 4 Zeile 2
blub    blub    blub
grml    grml    grml
Wegen verluste beim Konvertieren sind die Spalten in der Ausgabedatei nur noch mittels Tabulatoren getrennt.

Hoffe das hilft dir

Verfasst: Donnerstag 8. September 2005, 17:18
von b
vielen dank an alle, die mir geantwortet haben :lol: