Seite 1 von 1
QR Code Reader
Verfasst: Freitag 12. Februar 2021, 15:02
von Hubert784
Hallo zusammen,
ich bin neu hier und freue mich auf viele interessante Themen.
Programmiere seit 3 Jahren Hobby mässig Python, bin aber noch weit davon entfernt ein Profi zu sein
Aktuell möchte ich einen QR Scanner mit Python nutzen, bei Amazon gibt es aber unzählige QR Scanner.
Hat jemand damit eventuell Erfahrung und kann mir einen Empfehlen?
Zu meinem Vorhaben (Da frage ich eventuell später mal nach falls ich nicht weiter weiß):
Ich habe einen Ordner in dem sind .jpg Dateien enthalten. (z.B. 5566.jpg, 5577.jpg, ... usw)
Mit dem QR Scanner möchte ich dann einen QR Code scannen und setze hinten noch die endung .jpg dran.
Ist der gescannte Code jetzt 5566 kommt noch die endung .jpg dran und anschließend wird im Ordner kontrolliert ob die 5566.jpg vorhanden ist.
Falls ja wird diese gelöscht, falls nicht kommt eine Errormeldung.
Re: QR Code Reader
Verfasst: Freitag 12. Februar 2021, 15:14
von __deets__
Wieso willlst du denn eine QR-Scanner kaufen? Du kannst doch Bilder auf dem Computer einfach mit einer QR-scanner-Bibliothek (da gibt es garantiert was fuer Python) durcharbeiten.
Re: QR Code Reader
Verfasst: Freitag 12. Februar 2021, 15:19
von Hubert784
Über die Kamera meines Notebooks hab ich das schon zusammengebracht, aber es wird für das Projekt ein seperater QR-Scanner benötigt.
Re: QR Code Reader
Verfasst: Samstag 13. Februar 2021, 13:49
von __blackjack__
@Hubert784: Habe keine Erfahrung mit dedizierten Geräten, kann also keinen Empfehlen. Ich würde einen nehmen der als serielles Gerät angesprochen werden kann oder der sich als USB-Keyboard verhält. Wobei ersteres eventuell den Vorteil hat, dass man nicht darauf achten muss es von tatsächlichen Keyboardeingaben unterscheiden zu müssen und man braucht auch keine Eingabe die den Fokus hat um Daten zu empfangen/verarbeiten.
Auf Sicherheit solltest Du bei Deinem Programm ein bisschen achten. Nicht das Dir jemand QR-Codes unterjubeln kann, die irgendwo anders als dort wo Du das willst Dateien löschen.
Re: QR Code Reader
Verfasst: Mittwoch 3. März 2021, 12:32
von Hubert784
@__blackjack__
Danke für deine Antwort, konnte mich erst wieder heute damit beschäftigen.
Habe mir nun diesen QR Scanner gekauft:
https://www.amazon.de/dp/B07JLDM2MN/ref=emc_b_5_t
Dieser verhält sich als USB-Keyboard, einen der über seriell angesprochen wird hab ich nicht gefunden. Denke dass es der USB Scanner auch tut.
Wenn ich nun einen Editor aufmache und einen QR Code scanne, schreibt er mir den Code in den Editor.
Nur was ist, wenn ich keinen Editor oder ähnliches habe, sondern den Inhalt per Ctrl+V irgendwo eintragen möchte, gibt es soetwas in Python?
Re: QR Code Reader
Verfasst: Mittwoch 3. März 2021, 12:55
von __deets__
Darum war der Hinweis “Kauf dir einen der serielle Kommunikation unterstützt”. Denn jetzt ballert der seinen R-Code-Inhalt in das UI-Element, das Focus hat. Wenn so eines existiert.
Man kann das mit pyinput zwar auch programmatisch abgreifen. Aber was man NICHT kann, ist das Verhalten des OS so zu ändern, dass es eben nicht probiert wird, irgendwo einzugeben.
Wenn es also keinen Weg gibt, den scanner anders einzustellen, solltest du ihn zurückgeben. Und eine kaufen, der das kann.
Re: QR Code Reader
Verfasst: Mittwoch 3. März 2021, 14:53
von Hubert784
Den Hinweis habe ich auch Verstanden.
Ich möchte es einfach mal mit dem Scanner versuchen den ich jetzt habe, zurückschicken kann ich immer noch.
Am Desktop befindet sich ein Ordner "QR_Test" in dem 3 Files liegen "Test1.txt, Test2.txt und Test3.txt"
Den Pfad und Ordner finde ich, ebenso auch die Files.
Auch ein Abgleich vom QR Code und den Files ist möglich, also ob sich das was gescannt worden ist, auch im Ordner befindet.
Falls es ein Match gibt, soll das eine File gelöscht werden.
Doch leider bekomme ich eine Fehlermeldung: [WinError 2] Das System kann die angegebene Datei nicht finden: 'Test1.txt'
Jetzt komme ich derzeit nicht weiter, hat jemand Rat?
So sieht der Code erstmal aus:
Code: Alles auswählen
#!/usr/bin/python3
import os
import sys
PATH_TO_FILES = "C:/Users/Hubi/Desktop/QR_Test"
files = os.listdir(PATH_TO_FILES)
print(files)
while True:
QR_input = input("Barcode: ")
if QR_input not in files:
print("Scan nicht gefunden")
if QR_input in files:
print("Scan gefunden")
try:
os.remove(QR_input)
print("Datei gelöscht")
except OSError as e:
print(e)
else:
pass
Re: QR Code Reader
Verfasst: Mittwoch 3. März 2021, 14:58
von __deets__
Der Input ist nur zusammen mit dem Verteichnis ein gültiger Pfad. Das musst du also noch davor packen. Am besten benutzt du gleich die pathlib für den ganzen Dateisystem Kram.
Re: QR Code Reader
Verfasst: Mittwoch 3. März 2021, 15:27
von Sirius3
Du mußt schon den vollständigen Pfad angeben. Wenn man eine if-Bedingung hat, die das exakte Gegenteil der Bedingung des davorstehenden Blocks hat, dann benutzt man else. Das else-pass ist unnötig.
Am besten pathlib.Path benutzen:
Code: Alles auswählen
from pathlib import Path
PATH_TO_FILES = Path.home() / "Desktop" / "QR_Test"
def main():
while True:
qr_input = input("Barcode: ")
filename = PATH_TO_FILES / qr_input
if not filename.exists():
print("Scan nicht gefunden")
else:
print("Scan gefunden")
try:
filename.unlink()
print("Datei gelöscht")
except OSError as e:
print(e)
if __name__ == "__main__":
main()
Re: QR Code Reader
Verfasst: Mittwoch 3. März 2021, 16:17
von __blackjack__
Wobei ich an der Stelle noch mal ausdrücklich davor warnen möchte Benutzereingaben einfach so ohne ”Sicherungsnetz” als Dateinamen für das löschen zu verwenden! Sonst druckt Dir irgendwann einer einen QR-Code mit "../../../dateiname_im_heimatverzeichnis" aus. Und man sieht QR-Codes so etwas ja auch gar nicht an.