Und die Python-Dokumentation sagt zur builtin-function `print` was genau? Die Subprocess Doku hast du gelesen, die Beispiele offensichtlich nicht verstanden? Und ein Python-Tutorial für den Schnelleinstieg?

Wie sage ich es in Python ? (Einsteigerfragen)
- framp
- Thread is marked as Resolved.
Registriere dich jetzt, um exklusive Vorteile zu genießen! Als registriertes Mitglied kannst du Inhalte herunterladen und profitierst von einem werbefreien Forum.
Mach mit und werde Teil unserer Community!
Mach mit und werde Teil unserer Community!
-
-
-
shell=True
Sollte nur genutzt werden wenn es wirklich absolut nicht anders geht.
Wenn du die Ausgabe des "ls -l" Befehls (authentisch) verarbeiten willst mach es lieber so:
[code=php]
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import shlex
from subprocess import Popen, PIPEdef execute_command(cmd):
rc=-1
try:
process = Popen(shlex.split(cmd), stdout=PIPE, stderr=PIPE, bufsize=1)
for output in iter(process.stdout.readline, b''):
print(output.strip())
if process is not None:
rc = process.poll()
process.stdout.close()
process.wait()
print("\nDone")
except OSError as error:
rc=error
return rccommand = 'ls -la'
returncode = execute_command(command)
if (returncode is not None) and (returncode != 0):
print("Returncode: {}".format(returncode))
[/php]
Quelle: https://github.com/meigrafd/Sa…er/Tkinter_run.command.py -
-
<OT>
Quote from "meigrafd" pid='297984' dateline='1504300287'
shell=TrueSollte nur genutzt werden wenn es wirklich absolut nicht anders geht.
Ich benutze es eigentlich immer. Warum empfielst Du es nur im Notfall zu benutzen?
</OT> -
Primär weil auch in der Doku davon abgeraten wird
Sekundär weil sonst auch bootsmann meckert
Und zuletzt: Popen macht IMHO bei Befehle wie "ls -l" mehr Sinn -
Hallo nochmal,
könnte mir bitte jemand einen Lösungsansatz zu folgender Aufgabe beschreiben:
Nachfolgend die letzten beiden Zeilen einer Textdatei mit ein paar hundert Zeilen:
Die Felder sind: STATIONS_ID;MESS_DATUM;QN_6; RS; RSF;SH_TAG;eor
Das zweite und vierte Feld ist für mich relevant. (Niederschlagsmenge in mm/m² pro Tag)Ich lade ein Datenpaket (.zip) vom FTP-Server und extrahiere diese Textdatei in ein temporäres Verzeichnis.
Soweit klappt das schon.
Nun komme ich aber nicht so richtig weiter und bräuchte mal einen Tipp mit welchen Modulen ich das effizient erreichen könnte.Geht evtl. RegEx?
Mit \;[0-9]{8};\ finde ich die 8 Ziffern, die zum Datum gehören.
Und mit \[0-9]*\.[0-9]\ erwische ich die mehrstellige Niederschlagsmengen.Vielen Dank.
Gruß,
Marcus -
-
So wie ich es sehe ist das Semikolon immer der Trenner zwischen den Werten. Nimm doch einfach str.split um die Zeile in seine Bestandteile zu zerlegen
-
-
Hallo Bootsmann,
danke für den Tipp. Mit csv klappt es sehr einfach.
Mit dem Beispiel hier komme ich direkt and die relevanten Werte ran:Python
Display Morefrom datetime import date, timedelta three_days_ago = date.today() - timedelta(3) print ("DEBUG: Datum von vorgestern: ", three_days_ago.strftime('%Y%m%d')) three_days_ago_string = three_days_ago.strftime('%Y%m%d') import csv with open('download/dwd_data.txt') as csvfile: reader = csv.DictReader(csvfile, delimiter=';') for row in reader: if (three_days_ago_string == row['MESS_DATUM']): print('DEBUG: ', row['MESS_DATUM'], row[' RS'])
Jetzt muss ich mir das noch etwas aufhübschen und flexibler machen um eine variable Anzahl an Tagen auszulesen, dann ist es fertig.
-
-
Guten Abend zusammen,
Ich versuche momentan einen MCP23017 Port Expander zum laufen zu bringen, das Setzen und Lesen der Register funktioniert tadellos.
Ich lese das Register GPIOA aus und erhalte einen Hex Wert zurück. Dieser Hex Wert beschreibt welcher Port High oder Low ist. Das Register GPIOA ist für die GPIO Bank A zuständig und besitzt 8 Ports.
Wenn alle Pins High sind erhalte ich 0xFF zurück, bzw: 255.
Ich zerbreche mir momentan den Kopf darüber wie ich die einzelnen Ports separieren kann, so dass ich jeden Port einzeln verarbeiten kann, z.B: in If Schleifen.
Hat jemand eine Idee?Code
Display Moreimport smbus import time #bus = smbus.SMBus(0) # Rev 1 Pi bus = smbus.SMBus(1) # Rev 2 Pi DEVICE = 0x20 # Device Adresse (A0-A2) IODIRA = 0x00 # Pin Register fuer die Richtung IODIRB = 0x01 # Pin Register fuer die Richtung OLATB = 0x15 # Register fuer Ausgabe (GPB) GPIOA = 0x12 # Register fuer Eingabe (GPA) GPPUA = 0x0C # Register fuer Pullup GPA # Definiere GPA Pin 1-4 als Input # Binaer: 0 bedeutet Output, 1 bedeutet Input bus.write_byte_data(DEVICE,IODIRA,0xFF) # Definiere alle GPB Pins als Output (00000000 = 0x00) #bus.write_byte_data(DEVICE,IODIRB,0x00) #GPA Pullups aktivieren bus.write_byte_data(DEVICE,GPPUA,0xFF) # Setze GPB5 Status ready #bus.write_byte_data(DEVICE,OLATB,0x20) #Endlosschleife, die auf Tastendruck wartet while True: #Status von GPIOA Register auslesen Taster = bus.read_byte_data(DEVICE,GPIOA) time.sleep(1) print(Taster)
-
Wieso machst du dir das Leben so schwer?
=> https://learn.adafruit.com/mcp…erry-pi/using-the-library -
Hi, bin leider auch noch Anfänger und komme bei meinem Projekt grad leider nicht weiter.
Und zwar hab ich 7 Sensoren die ich über ein Switch (also Ethernet) mit dem Raspberry verbinden will. Ich weis aber grad nicht wie ich die Daten da Auslesen kann.
Falls das überhaupt geht. Ich bitte um Hilfe. Danke
Gruß
-
-
Ich weis aber grad nicht wie ich die Daten da Auslesen kann.
Schade. Wir auch nicht.
PS: Bitte Hilfeanfragen so stellen, dass man sie auch versteht, wenn man von deiner Situation keine Ahnung hat. Tu' einfach so, als wüsstest du nichts von deinem Projekt und lies den Beitrag noch mal durch
-
@Sanchez Bitte erstell dir einen eignen Thread, und beschreibe dort dann ausführlicher dein Problem sowie Ziel.
Dieser Thread hier dient nicht zur allgemeinen Problemlösung individueller Projekte. Dir fehlen anscheint noch grundlegende Vorgehensweisen usw und nicht gezielt "Wie sag ich es in Python". Wenn hier jeder sein individuelles Vorhaben durchkauen würde bräuchten wir kein Forum mit all den Bereichen...
-
Danke für den Hinweis. Ich hab nun ein Thread erstellt
-
-
Gibt es denn irgendwo einen ausführlichen Leitfaden zu Python? So etwas wie Python für Dummies?
-
Ja, einfach mal mit der Suchmaschine suchen. Tutorials, Howtos in den Docs, Bücker in der "* für Dummies" Serie, alles dabei. Einfach mal in der örtlichen Bibliothek 2-3 Bücher zu Python 3! ausleihen. Fang' bloß nicht mehr mit Python 2 an, das hat EOL in 2.5 Jahren.
-
Fang' bloß nicht mehr mit Python 3 an,
Python 2 du meinst
-
-
Scheiße, wenn er jetzt mit 2 anfängt bin ich schuld, damit käme ich nicht klar
Spaß beiseite, danke für den Hinweis.
klappmesser also nochmal: fange mit Python 3 an und setzte bloß nicht auf Bücher, Tutorials oder Bibliotheken, die nur Python 2 verwenden.
-
Gibt es denn irgendwo einen ausführlichen Leitfaden zu Python? So etwas wie Python für Dummies?
Hallo klappmesser, hierfür kann ich dir diese Seite ans Herz legen: