Python 3 – die besten Beiträge

Epson Nadeldrucker einzelne Buchstaben drucken?

Hey Leute!

Ich versuche aus einem Raspberry Pi 4 und meinem EPSON LQ Nadeldrucker eine "Schreibmaschiene" zu bauen. Ist es möglich, statt Line-By-Line jeden Buchstaben den ich eingebe einzeln zu drucken? Ich komme nämlich nicht weiter.

Mein aktuelles Script:

import os
import sys
import termios
import tty


# Pfad zum USB-Drucker
DRUCKER_USB_PORT = '/dev/usb/lp0'


# Funktion, um eine Taste direkt ohne ENTER zu lesen
def lese_taste():
    fd = sys.stdin.fileno()
    alte_einstellungen = termios.tcgetattr(fd)
    try:
        tty.setraw(fd)
        taste = sys.stdin.read(1)  # Liest genau 1 Zeichen
    finally:
        termios.tcsetattr(fd, termios.TCSADRAIN, alte_einstellungen)
    return taste


# Verbindung zum Drucker öffnen
if not os.path.exists(DRUCKER_USB_PORT):
    print(f"Der Drucker wurde nicht unter {DRUCKER_USB_PORT} gefunden.")
    sys.exit(1)


try:
    with open(DRUCKER_USB_PORT, 'wb', buffering=0) as drucker:  # Ungepufferter Modus
        print("Schreibmaschinen-Modus aktiv. Tippe, um zu drucken. Drücke 'Strg+C' zum Beenden.")


        while True:
            taste = lese_taste()  # Zeichen sofort lesen
            if ord(taste) == 3:  # Strg+C beenden
                break
            elif ord(taste) == 13:  # ENTER (Carriage Return)
                drucker.write(b'\r\n')  # Zeilenumbruch senden
            else:
                drucker.write(taste.encode('ascii'))  # Zeichen sofort senden
            drucker.flush()  # Sicherstellen, dass die Daten sofort geschrieben werden


except PermissionError:
    print(f"Keine Berechtigung für Zugriff auf {DRUCKER_USB_PORT}.")
    print("Führe das Skript mit 'sudo' aus oder ändere die Berechtigungen:")
    print(f"  sudo chmod 666 {DRUCKER_USB_PORT}")
except Exception as e:
    print(f"Ein Fehler ist aufgetreten: {e}")
finally:
    print("Verbindung zum Drucker geschlossen.")


Drucker, Code, Programmiersprache, Python, Schreibmaschine, Python 3, Raspberry Pi, ChatGPT

Python API Spam Prevention?

Hallo Freunde,

ich nutze ein Python Script das automatisch nach erfolgreicher Registrierung ein JSON String zu meiner Website sendet, per requests.post im Format: https://[URL]/upload.php

Von dort werden die Daten verarbeitet und in der Datenbank eingetragen.

Nun ist mir aber klar, dass natürlich jeder theoretisch die URL entnehmen könnte, und ein kleines Script erstellen kann, das permanent Anfragen sendet und damit die Datenbank mit Invalider Daten füllt.

Nun würde ich gerne erfahren, was man dagegen tun kann!

Mit freundlichen Grüßen

SQL, Webseite, Code, Datenbank, MySQL, PHP, Python, Python 3, JSON

Programm funktioniert nicht brauche Hilfe?

Brauche Hilfe. bei diesem Python Programm ich möchte das aus einer Textdatei Wörter zufällig ausgewählt werden und dann in einem Browser auf einer website eingefügt werden und dann ein Button auf der Seite gedrückt wird und falls es falsch ist die Wörter löscht und wieder von vorne anfängt.

from lib2to3.pgen2 import driver

import random

import time

from selenium import webdriver

from selenium.webdriver.chrome.service import Service

from selenium.webdriver.common.by import By # Neu: By importieren

# Funktion zum Einlesen der Wörter aus einer Textdatei und zufällige Auswahl von 6 Wörtern

def get_random_words_from_file(file_path, num_words=6):

with open(file_path, 'r', encoding='utf-8') as f:

words = f.read().splitlines()

return random.sample(words, num_words)

# Funktion zur Automatisierung des Browsers

def automate_browser(word_list, url, textfield_selector, button_selector, result_selector):

# WebDriver für Chrome starten mit dem Service-Objekt

service = Service('/usr/local/bin/chromedriver') # Pfad zum chromedriver anpassen

driver = webdriver.Chrome(service=service)

try:

# Webseite aufrufen

driver.get(url)

while True:

# Wörter in das Textfeld eingeben

textfield = driver.find_element(By.CSS_SELECTOR, textfield_selector).text # Neue Methode verwenden

textfield.clear() # Textfeld leeren

textfield.send_keys(' '.join(word_list)) # Wörter einfügen

# Button klicken

button = driver.find_element(By.CSS_SELECTOR, button_selector) # Neue Methode verwenden

button.click()

# Kurze Pause, um auf die Reaktion der Seite zu warten

time.sleep(2)

# Ergebnis überprüfen

result = driver.find_element(By.CSS_SELECTOR, result_selector) # Neue Methode verwenden

if "korrekt" in result.lower():

print("Eingabe war korrekt!")

break

else:

print("Eingabe war falsch, versuche erneut...")

# Neue Wörter auswählen

word_list = get_random_words_from_file("words.txt")

textfield.clear()

time.sleep(1)

finally:

pass

# Beispielhafte Verwendung:

if __name__ == "__main__":

# Pfad zur Datei mit den Wörtern

file_path = '/usr/local/bin/words.txt'

# URL der Webseite mit dem Textfeld und Button

url = 'URL einfügen'

# CSS-Selektoren für das Textfeld, den Button und das Ergebnisfeld

textfield_selector = '#input1' # Korrekter CSS-Selektor eingeben

button_selector = '#onboarding-form-submit-button' # Korrekter CSS-Selektor eingeben

result_selector = '#onboarding-form-submit-button' # Korrekter CSS-Selektor eingeben

# 12 zufällige Wörter aus der Datei auswählen

word_list = get_random_words_from_file(file_path)

# Automatisierung starten

automate_browser(word_list, url, textfield_selector, button_selector, result_selector)

driver.quit()

Webseite, Code, Programmiersprache, Python, Python 3

Meistgelesene Beiträge zum Thema Python 3