Python Anfänger - Dateiinhalt vergleichen

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.
Bluebay
User
Beiträge: 7
Registriert: Montag 14. April 2014, 20:07

BlackJack hat geschrieben:@Bluebay: Ein fertiges Programm benutzen ist einfacher als so ein Programm selber zu schreiben. Wer hätte das gedacht. :roll:
Ja da hast du recht. War nicht unbedingt schlau der Post. Kann mir vielleicht jemand den richtigen Code posten, damit ich mich damit auseinandersetzen kann?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Bluebay hat geschrieben: Kann mir vielleicht jemand den richtigen Code posten, damit ich mich damit auseinandersetzen kann?
Wie wäre es, wenn Du den selber *entwickelst*; besser kann man sich mit einem Problem nicht auseinander setzen! :-) (Und ja, Hilfe dazu gibt es hier - fertige Lösungen eher seltener...)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Hier mal ein Ansatz in Clojure (ohne Laden aus Dateien!):

Code: Alles auswählen

user=> (use 'clojure.set)
nil
user=> (def large #{"John Schnee" "Margaery Tyrell" "Robb Stark"})
#'user/large
user=> (def small #{"Tyrion Lannister" "John Schnee"})
#'user/small
user=> (difference small large)
#{"Tyrion Lannister"}
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
BlackJack

C++ mit dem neuen `unordered_set` und laden aus Dateien:

Code: Alles auswählen

#include <fstream>
#include <string>
#include <unordered_set>

using namespace std;

int main()
{
    string line;
    
    ifstream big_file("A");
    unordered_set<string> big;
    while (getline(big_file, line)) {
        big.insert(line);
    }
    big_file.close();

    ifstream small_file("B");
    ofstream out_file("C");
    while (getline(small_file, line)) {
        if (big.find(line) == big.end()) {
            out_file << line << endl;
        }
    }
    out_file.close();
    small_file.close();

    return 0;
}
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Noch einmal Clojure mit dem Lesen aus Dateien:

Code: Alles auswählen

John Schnee
Margaery Tyrell
Rob Starck

Code: Alles auswählen

John Schnee
Tyrion Lannister

Code: Alles auswählen

(use 'clojure.set)
(use '[clojure.string :only (split)])
(def small (apply hash-set (split (slurp "small.txt") #"\n")))
(def large (apply hash-set (split (slurp "large.txt") #"\n")))
(println (difference small large))
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
BlackJack

Haskell:

Code: Alles auswählen

import Data.Set (fromList, notMember)

main = do
    big <- readFile "A"
    let bigSet = fromList $ lines big
    small <- readFile "B"
    writeFile "C" $ unlines $ filter (flip notMember bigSet) (lines small)
Antworten