Sicherungsskript von a byte of python

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.
BlackJack

@bluelagoon: Eine laufende Sicherung in der Textkonsole abzubrechen dürfte Deine jetzigen Fähigkeiten übersteigen. Dazu müsstest Du ja irgendwie Benutzereingaben entgegen nehmen und die Sicherung *gleichzeitig* durchführen. Ausserdem müsstest Du entweder dafür sorgen, dass `tar` "ruhig" ist, oder die ganzen Ausgaben irgendwohin umleiten, denn wie Du schon richtig angemerkt hat, stören die Ausgaben die Kommunikation mit dem Benutzer. Du müsstest Dich also mit Threads und Prozessen sowie deren Standardkanälen beschäftigen. Und das wo Du offensichtlich schon grundlegende Probleme mit der Organisation des Quelltextextes und einfacher Ablauflogik hast, die nicht einmal etwas mit der Programmiersprache zu tun haben. Das ist in jeder imperativen Programmiersprache gleich, also auch in VB.

Du solltest erst einmal aufhören alles auf Modulebene zu schreiben und die einzelnen Funktionalitäten in Funktionen aufzuteilen, die dann entsprechend der eingegebenen Zahl aufgerufen werden. Den Namen `l` sollte man dafür vielleicht in `choice` oder `auswahl` ändern, damit er die Bedeutung des Wertes, der daran gebunden wird widerspiegelt. Das ist nichts was man auf ein nebulöses "Später" verschieben sollte.
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

standartkanal jaaa genau warum bin ich nicht gleich drauf gekommen :!:
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

vielen vielen dank ^^
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Es heißt Standard ;-)

Ich denke auch, dass Du es falsch angehst. BJ hat Dir ja schon erklärt, auf was für Probleme Du da stoßen wirst. Imho hat noisefloor Dir doch einen guten Tipp gegeben, den ich hier mal ein wenig abgewandelt aufbohren werde:

http://paste.pocoo.org/show/259836/

Hier mal testweise einige Aufrufe:

Code: Alles auswählen

nelson@MECL-LAP3:~/src/Python/Snippets$ ./dispatcher.py 

        Benutzung des dollen Scriptes:
        
        ./script.py PARAMS

        PARAMS:
            - backup: sichert irgendwas
            - foo: macht auch was tolles
    
nelson@MECL-LAP3:~/src/Python/Snippets$ ./dispatcher.py foo back backup
Bin in bar :-)
Das Kommando 'back' gibt es nicht!
Fertisch!
Natürlich sollte man für komplexere Dinge einen Kommandozeilen-Parser benutzen (was schon erwähnt wurde) und Nebenläufigkeiten bietet das auch noch nicht. Aber für einen Anfänger ist das sicherlich schon mal ein (durchaus machbarer) Brocken, alle Konzepte dahinter zu kapieren. Gleichzeitig hat man im Gegenzug aber auch was funktionierendes ;-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

naja das stimmt schon sorry das ich mich verschrieben habe. Jedenfalls ich weis das meine Sicherung in ein Tar gepackt wird und die Idee in Standartkanal auszuleiten ist ne gute Idee. Danke für den Link aber es bringt sehr viel das dort steht. FOO macht irgendwas is dazu natürlich ne tolle Sache. Naja ich probier weiter meine kleine große Hürde :D
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

bluelagoon hat geschrieben:Danke für den Link aber es bringt sehr viel das dort steht. FOO macht irgendwas is dazu natürlich ne tolle Sache. Naja ich probier weiter meine kleine große Hürde :D
Du musst Dich einfach mit den Grundlagen der Sprache befassen! Da führt kein Weg drum herum. Mein Script sollte Dir nur eine mögliche grundlegende Struktur aufzeigen, wie man eine sinnvolle Aufteilung von Funktionalitäten auf Funktionen zusammen mit einer Möglichkeit, diese über externe Parameter anzusprechen, implementieren könnte. Ohne sich die Grundlagen zu erarbeiten bringt das sicherlich nicht sehr viel.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

naja mein shutdown is auch in einer Funktion drin ^^ was ich irgendwie nur noch nicht verstanden hab ist strout einzubauen mit nem grep kann man das ja machen aber in python? mh no chance naja vll lass ich das einfach und lösch das ganze Python wieder :)
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

bluelagoon hat geschrieben:naja mein shutdown is auch in einer Funktion drin ^^
Davon hattest Du bisher nix geschrieben / gezeigt - wobei ich mich dann aber frage, wieso der Rest so unstrukturiert ist?!?
was ich irgendwie nur noch nicht verstanden hab ist strout einzubauen
Hä?
mit nem grep kann man das ja machen aber in python?
noch mal hä?
mh no chance naja vll lass ich das einfach und lösch das ganze Python wieder :)
Ja, das ist vielleicht das beste :-D
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

keine Ahnung weil ich denke das das bis jetz so in Ordnung is naja ich will jetzt nur noch Ausgabe umleiten sollen doch diese dummen Benutzer STRG +C drücken mir auch egal naja hilfe kann man hier irgendwie nicht erwarten warum existiert das Forum? das ihr alle nur auf Skripte hinweist oder so?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

bluelagoon hat geschrieben:keine Ahnung weil ich denke das das bis jetz so in Ordnung is naja ich will jetzt nur noch Ausgabe umleiten sollen doch diese dummen Benutzer STRG +C drücken mir auch egal naja hilfe kann man hier irgendwie nicht erwarten warum existiert das Forum? das ihr alle nur auf Skripte hinweist oder so?
Ich bin es leid auf solche Beiträge immer und immer wieder zu antworten und mich dann noch für meine Hilfe rechtfertigen zu müssen. Dazu hatten wir hier schon genügend Meta-Diskussions-Threads. :roll:

Nur mal so viel:

- du formulierst wirr, sowohl grammatikalisch als auch inhaltlich.
- du gehst auf Nachfragen nicht ein
- du zeigst keine Bereitschaft eigenständig zu arbeiten und zu lernen
- du zeigst Deine Abneigung gegen hilfsbereite Menschen

-> Du wirst hier wohl kaum mehr Hilfe erwarten können.

Lies dazu mal u.a. diesen Thread:
http://www.python-forum.de/viewtopic.php?f=1&t=23839
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

mir gehts darum ich will einen Stdout Standardkanal (Ausgabe) ok? und den will ich IM Python Implementieren, da das mit Grep nicht funktioniert.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

bluelagoon hat geschrieben:mir gehts darum ich will einen Stdout Standardkanal (Ausgabe) ok? und den will ich IM Python Implementieren, da das mit Grep nicht funktioniert.
OMG... Du hast weder grad verlinkten Beitrag gelesen noch sonst wie geistig meine Kommentare flektiert!

Du willst die Standardausgabe, ok:

Code: Alles auswählen

In [26]: import sys

In [27]: sys.stdout
Out[27]: <open file '<stdout>', mode 'w' at 0xb7816078>
Noch Fragen dazu?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

öhm nö hab den Brief schon anfangs gelesen
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

habs nun anders gelöst die Ausgabe erscheint nicht mehr
Antworten