Seltsames print() Problem bei Verwendung von DLL-Wrapper

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
Hazzard
User
Beiträge: 26
Registriert: Dienstag 4. Dezember 2007, 21:09

Hallo,

ich habe ein seltsames Problem. Der untenstehende Code läuft nur mit folgender Zeile (17):

Code: Alles auswählen

print("", end="")
Wenn ich das auskommente, dann funktioniert nichts mehr. Bzw. genauer gesagt die Exception springt an, weil MI.Get() nichts mehr zurückgibt. Ich verstehe nicht wie so etwas sein kann. Selbst wenn es an der DLL/Wrapper liegen sollte, würde man das doch mit so einem print() was im Prinzip nichts macht nicht reparieren können.

Ich verwende Python 2.7 x64 und Windows 7.
Die MediaInfoDLL gibts hier: http://mediainfo.sourceforge.net/de/Download

Code: Alles auswählen

from __future__ import print_function
import sys, codecs, os.path
from MediaInfoDLL import *

DIR = os.path.abspath(u".")

sys.stdout = codecs.getwriter(u'UTF-8')(sys.stdout)
MI = MediaInfo()

album = True

for f in os.listdir(DIR):
    f = os.path.join(DIR, f)
    if os.path.isdir(f):
        album = True
    else:
        print("", end="")
        MI.Open(f)
        try:
            if album:
                print("\n%s - %s" % (MI.Get(Stream.General, 0, u"Performer"), MI.Get(Stream.General, 0, u"Album")))
                album = False
            print("%02u - %s" % (int(MI.Get(Stream.General, 0, u"Track/Position")), MI.Get(Stream.General, 0, u"Title")))
        except ValueError as e:
            print("%s: %s" % (f, e))
            pass
        MI.Close()
Ich weiß, mutagen und so gibts auch noch, aber ich brauch MediaInfo.
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Zeige mal bitte die Exception und den Code, den du in diesem Moment tatsächlich laufen lässt. Ich glaube kaum, dass es an diesem "print()-Platzhalter" liegt.
Hazzard
User
Beiträge: 26
Registriert: Dienstag 4. Dezember 2007, 21:09

Mist, ich kann den Fehler nicht mehr reproduzieren.

Die Exception war: invalid literal for int() with base 10: ''

Den Code den ich gepostet hab, hab ich 1:1 so ausprobieren. Ohne das print gings nicht. Jetzt gehts auf einmal.
Vielleicht hat der DLL Loader von Windows gesponnen oder so. Ich denk ein Neustart hat das wieder repariert.
Antworten