löschen von zeilen und spalten

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
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
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:


GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
b

hm.
ich will ja keine vergleiche machen sondern lediglich zeilen bzw spalten überlesen und den rest in ne andere datei schreiben.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Das Prinzip ist aber das selbe...
Datei in einer for-Schleife in eine neuen Datei schreiben und dabei die ersten Zeilen auslassen... fertig.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
XT@ngel
User
Beiträge: 255
Registriert: Dienstag 6. August 2002, 14:36
Kontaktdaten:

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
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.
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.
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

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
TUFKAB – the user formerly known as blackbird
b

vielen dank an alle, die mir geantwortet haben :lol:
Antworten