Die Frage ist eher, ob Du Interesse daran hast - die beiden Funktionen oben zeigen mir, dass Du Interesse haben solltest; Dein Posting hier zeigt mir, dass Du es eher nicht hastzedream hat geschrieben:Also ich habe es schon hingekriegt. Ich danke euch allen Wenn ihr interesse habt, kann ich mal mein Skript posten.
CoDeSys in Python
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
Also für diejenigen die Interesse daran haben, hier ist das Skript :
Code: Alles auswählen
import os, subprocess
def runProcess(CoDeSys):
for root, dirs, files in os.walk('C:\\'):
if CoDeSys in files:
return (os.path.abspath(os.path.join(root, CoDeSys)))
def PythonScript(ExportScript):
for root, dirs, files in os.walk('\\'):
if ExportScript in files:
return(os.path.abspath(os.path.join(root, ExportScript)))
codesys = runProcess("CoDeSys.exe")
exportscript = PythonScript("ExportScript.py")
commandline = '"%s" --Profile="CoDeSys V3.4 SP4 Patch 1" --runscript="%s"' % (codesys, exportscript)
subprocess.call(commandline)
@zedream: Die Wünsche von Auftraggebern in allen Ehren, aber wenn sie objektiv gesehen *zu* unsinnig werden, setzt man sich halt mit einer fundierten Begründung darüber hinweg. Ich würde da maximal die *eine* Funktion an einen weiteren Namen binden.
``return`` ist übrigens keine Funktion, darum sollte man auch kleine Klammern um das machen was kein Argument ist. Oder anders ausgedrück, nach dem Schlüsselwort ``return`` steht ein Ausdruck, und Klammern um einen Ausdruck sind unnötig wenn man damit keine Auswertungsreihenfolge erzwingen muss.
``return`` ist übrigens keine Funktion, darum sollte man auch kleine Klammern um das machen was kein Argument ist. Oder anders ausgedrück, nach dem Schlüsselwort ``return`` steht ein Ausdruck, und Klammern um einen Ausdruck sind unnötig wenn man damit keine Auswertungsreihenfolge erzwingen muss.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Ich frage mich ja auch noch, wieso man bei jedem Start den Rechner nach diesen Dateien durchsuchen muss... wieso macht man das nicht nur bei Bedarf? Hatte ich ja schon mal vorgeschlagen: Eine INI-Datei mit den Pfaden in einem Standard-Verzeichnis ablegen, wenn diese (noch) nicht vorhanden ist - oder die Pfade nicht stimmen - dann scannt man eben neu.
@zedream: Dir ist aber mittlerweile klar, dass Deine zwei Funktionen identisch sind, wenn man von der Benennung absieht? Das kann doch *niemals* wirklich der Wunsch eines Auftraggebers sein -> Redundanz -> mehr Fehlerpotenzial, schwerere Wartbarkeit, usw.
@zedream: Dir ist aber mittlerweile klar, dass Deine zwei Funktionen identisch sind, wenn man von der Benennung absieht? Das kann doch *niemals* wirklich der Wunsch eines Auftraggebers sein -> Redundanz -> mehr Fehlerpotenzial, schwerere Wartbarkeit, usw.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
Code: Alles auswählen
import os, subprocess
def find(CoDeSys):
for root, dirs, files in os.walk('C:\\'):
if CoDeSys in files:
return (os.path.abspath(os.path.join(root, CoDeSys)))
PythonScript = find
codesys = find("CoDeSys.exe")
exportscript = PythonScript("ExportScript.py")
commandline = '"%s" --Profile="CoDeSys V3.4 SP4 Patch 1" --runscript="%s"' % (codesys, exportscript)
subprocess.call(commandline)
the more they change the more they stay the same