Wir erstellen ein Addon (simples Tutorial von Anfang bis Ende)

  • 1.Prüft euer aktuelles Arbeits Verzeichnis

    Da ich nicht genau weiß was du mit Prüfen meint man kann ja Pfad Größe und Inhalt prüfen so mach ich halt auch alles aber beim Prüfen von der Größe bekomme ich ein falschen Wert wieso???

    Python
    import os
    import os.path
    print os.path.getsize(os.getcwd())
  • Das soll doch Multi OS sein sollte ich dann nicht so was wie /usr/lib bekommen?

    Nein Du musst einen Verzeichnisnamen oder den Path zum Verzeichnis angeben.
    Funktioniert so unter Windows wenn Deutsch da das Verzeichnis Programme in C: vorhanden ist.

    Da ich nicht genau weiß was du mit Prüfen meint man kann ja Pfad Größe und Inhalt prüfen so mach ich halt auch alles aber beim Prüfen von der Größe bekomme ich ein falschen Wert wieso???

    Python
    import os
    import os.path
    print os.path.getsize(os.getcwd())

    Prüft euer aktuelles Arbeitsverzeichnis , hm ist für mich eindeutig.
    Bedeutet den Path!


    Wie beschrieben:

    os.path.getsize(filename)gibt die Größe einer Datei aus ohne sie zu öffnen.


    os.path.getsize(Filename) Filename =Dateiname .
    Du prüfst aber ein Verzeichnis!


    Gruß Jan

  • Wieso geht das nicht?

    Spoiler anzeigen
  • @Dima

    Beantwortet dir das die Fragen?

    Spoiler anzeigen

    Vielleicht solltest Du umrechnen ich denke die Ausgabe ist in Bytes.


    Gruß Jan

  • Hab die Übungen soweit schon durch, morgen werde ich dann noch ein paar Funktionen daraus basteln.

    Das einzige Problem war in Übung 12:

    Erst lösche ich die 2 Dateien im Verzeichnis da ich dieses nur löschen kann wenn es leer ist mit:

    for name in os.listdir(home):
    os.remove(name)

    Danach möchte ich ins übergeordnete Verzeichnis mit os.chdir(Path) wechseln um das Verzeichnis auch löschen zu können:
    >>> Wie das geht habe ich bisher nicht rausgefunden.
    >>> Absoluter Pfad funktioniert natürlich (ist aber nicht der Sinn der Sache)

    Ich habs auch ohne Dateien zu löschen hinbekommen.

    Code
    import shutil
    
    
    shutil.rmtree('Test')


    Ist wahrscheinlich anders gewollt, aber so gehts schneller

  • Beantwortet dir das die Fragen?

    Nichtr wirklich da ich jedes Punkt einzeln versucht habe und er ging! Aber wen ich das so zusammenfasse das geht es nicht mehr???

    Vielleicht solltest Du umrechnen ich denke die Ausgabe ist in Bytes.

    Habe eine neue Datei sogar rein kopiert die den Ordner wesentlich vergrößern sollte bekomme aber immer das selbe. Wert 4096


    Wieso können wir import os und import os.path machen wir haben in unserem Ordner doch keine der beiden Dateien!

    Müsstest noch eine Verknüpfung im ersten Beitrag machen für die Lektion!

    2 Mal editiert, zuletzt von Dima (24. November 2015 um 19:45)

  • Nichtr wirklich da ich jedes Punkt einzeln versucht habe und er ging! Aber wen ich das so zusammenfasse das geht es nicht mehr???

    Habe eine neue Datei sogar rein kopiert die den Ordner wesentlich vergrößern sollte bekomme aber immer das selbe. Wert 4096

    Unabhängig ob es vorher ging oder nicht, solltest Du mit Variablen Arbeiten.
    Ich selbst würde auch den Namen des neuen Verzeichnisses in einer Variable ablegen und dann nur auf die Variable zugreifen z.B.

    Teste das ganze doch mit einem File(Datei) wie beschrieben.
    Wenn ich Deine Textdatei so prüfe hat sie 103 Bytes und das ist der selbe Wert den mir der Explorer unter Eigenschaften der Datei angibt.
    Größe auf dem Datenträger sind 4.096 Bytes wobei wir wieder bei Deiner Zahl sind!
    Wobei auch die Python Datei in der Größe auf dem Datenträger 4,00 KB (4.096 Bytes) hat obwohl die Tatsächliche größe meiner Python Datei 49 Bytes ist und genau dieses Ergebnis bringt mir auch Python wenn ich es teste.

    Also probiere wie beschrieben eine Datei denn umsonst habe ich das in der Definition ja nicht auch so geschrieben.


    Gruß Jan

  • Wieso können wir import os und import os.path machen wir haben in unserem Ordner doch keine der beiden Dateien!

    Python selbst hält Module dazu gehört auch das os Modul sowie re,urllib,urllib2 usw.
    Also greifen wir mit den Import auf ein internes Python Modul zurück.

    Das coole aber ist das man auch selbst Module erstellen kann oder weitere externe Module laden kann.
    Wie z.B das request Modul oder Pafy.


    hier siehst Du welche Module in Python 2.7 integriert sind!


    Gruß Jan

  • Teste das ganze doch mit einem File(Datei) wie beschrieben.
    Wenn ich Deine Textdatei so prüfe hat sie 103 Bytes und das ist der selbe Wert den mir der Explorer unter Eigenschaften der Datei angibt.
    Größe auf dem Datenträger sind 4.096 Bytes wobei wir wieder bei Deiner Zahl sind!
    Wobei auch die Python Datei in der Größe auf dem Datenträger 4,00 KB (4.096 Bytes) hat obwohl die Tatsächliche größe meiner Python Datei 49 Bytes ist und genau dieses Ergebnis bringt mir auch Python wenn ich es teste.

    Also probiere wie beschrieben eine Datei denn umsonst habe ich das in der Definition ja nicht auch so geschrieben.

    Ja Dateien gehen bis auf .py da bekomme ich eine Fehlermeldung das hatte ich schon getestet und wollte dann aber einen ganzen Ordner der wird mir aber immer mit der selben Größe angegeben.
    Auch das Beispiel von dir gibt mir nur die 4096 aus!

    Unabhängig ob es vorher ging oder nicht, solltest Du mit Variablen Arbeiten.
    Ich selbst würde auch den Namen des neuen Verzeichnisses in einer Variable ablegen und dann nur auf die Variable zugreifen z.B.

    Die Liste wollte ich noch bearbeiten aber mich hat es doch überrascht das jeder Punk für sich geht aber zusammen dann ein Fehler beim Anlegen des Ordners gemeldet wird der erstellt wird.

  • Die Liste wollte ich noch bearbeiten aber mich hat es doch überrascht das jeder Punk für sich geht aber zusammen dann ein Fehler beim Anlegen des Ordners gemeldet wird der erstellt wird.

    Der Fehler beim Anlegen des Ordners entstand weil er sicherlich von Dir schon beim einzelnen ausprobieren erstellt worden war.
    Ich hatte in deinem Script verschiedene andere Fehler entdeckt so z.B beim wechseln in das neu erstellte Verzeichnis.
    Was so wie ich es dann getan habe System unabhängig funktionieren tut.

    Gruß Jan.

  • @AR2015 und @Rene1980 !

    Alles soweit klar bei Euch?

    Oder habt Ihr Euch hier schon verabschiedet?

    Gruß Jan

    Moin,

    nein ich bin noch mit dabei, bloss ich bin seit gestern bis Freitag auf einer Schulung, daher kann ich die Aufgaben erst am WE machen.

    Gruß Andy

    Meine Systeme
    Win7 PC mit Kodi 15.2 Isengard (PC Zimmer)
    Apple TV1 Betriebssystem OpenELEC, Kodi 15.1 Isengard (PC Zimmer)
    Apple TV1 Betriebssystem OpenELEC, Kodi 15.1 Isengard (Wohnzimer)
    Fire TV Stick mit Kodi 15.2 Isengard (Schlafzimmer)
    Ipad 3 IOS 9.0.2 mit Kodi 15.2 Isengard

  • @AR2015 und @Rene1980 !

    Alles soweit klar bei Euch?

    Oder habt Ihr Euch hier schon verabschiedet?

    Gruß Jan

    Moin,

    nein ich bin noch mit dabei, bloss ich bin seit gestern bis Freitag auf einer Schulung, daher kann ich die Aufgaben erst am WE machen.

    Gruß Andy

    Meine Systeme
    Win7 PC mit Kodi 15.2 Isengard (PC Zimmer)
    Apple TV1 Betriebssystem OpenELEC, Kodi 15.1 Isengard (PC Zimmer)
    Apple TV1 Betriebssystem OpenELEC, Kodi 15.1 Isengard (Wohnzimer)
    Fire TV Stick mit Kodi 15.2 Isengard (Schlafzimmer)
    Ipad 3 IOS 9.0.2 mit Kodi 15.2 Isengard

  • Habe eine neue Datei sogar rein kopiert die den Ordner wesentlich vergrößern sollte bekomme aber immer das selbe. Wert 4096

    Wird os.path.getsize() ist für Datein gedacht und gibt deren Größe in Byte zurück.
    Bei einem Verzeichnis gibt es die Größe der Datei zurück, die das Verzeichnis auf dem Datenträger repräsentiert. Deswegen ist die Zahl die du erhält auch immer gleich, denn dein OS repräsentiert jedes Verzeichnins unabhängig von dessen Größe auf die gleiche Weise (z.B. https://de.wikipedia.org/wiki/Inode).
    Wenn du die Größe des Inhalts wissen willst kannst du per listdir() alle Elemente im Vezeichnis erhalten. Dann für jedes Elemeten per .getsize() die Größe bestimmen und das ganze aufsummieren. (Falls es Unterverzeichinsse gibt muss man die natürlich auch noch entsprechend behandeln sonst stimmt das Ergebnis nicht so wirklich.)

  • hmm.. ich stecke etwas fest.
    ich möchte in ein neues verzeichnis wechseln welches ich vorher abgespeichert habe als Variable.

    Spoiler anzeigen
    Python
    import os
    import os.path
    newname='\pytest'
    home=os.getcwd()
    new=os.path.join(os.sep,home+newname)
    os.chdir(new)
    home=os.getcwd()
    print home


    Zeile 4 möchte ich OHNE \ schreiben
    und in Zeile 5 ..
    new=os.path.join(os.sep,home+'\'+newname) geht nicht.

    zeich='\'
    pfad='pytest'
    newname=zeich+pfad

    klappt auch nicht :(

    erstellen?

    So mal mein zwischenstand;) richtiger weg?

    Spoiler anzeigen
  • @Schwarzarm
    Beispiel:
    new=os.path.join(os.sep,home,'neues Verzeichnis','Bille')
    verwende kein +!
    os.sep (erzeugt automatisch den Separator (os spezifisch))

    Gruß Jan


    Edit 1:

    Was ist in from tools.dirneu import * und tools.rename?
    warum hast du 2 imports tools.dirneu und tools.rename?
    Versuche es in einem import zu setzen!
    Edit 2:
    Wenn Du import's integrierst wäre es besser die Funktionen unter Tools Helper oder(egal welchen Namen zu importieren)

    Die Variablen in deiner aktuellen .py zu setzen und auf die Funktionen vom Import zurück zu greifen!


    Gruß Jan

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!