Weitergabe von Variablen

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
RSMVDL

Hallo,

Ich habe mal ne Frage.
Wenn ich jetzt z.B. ein Python Script habe wie gebe ich in diesem eine Variable weiter an ein anderes Python Script (Python v. 3.3).
In meinem Fall wird ein temporärer Ordner erstellt und der eindeutige Pfad zu diesem wird in einer Variable gespeichert. Innerhalb dieses Pfades muss dann eine Datei bearbeitet werden...
Wie gebe ich dem 2en Script den eindeutigen Pfad mit?

Mein Script:

Code: Alles auswählen

import shutil
from tempfile import mktemp

source_path = input('Path to source files: ')
final_path = mktemp(prefix='tmp_iso_', dir='/media')
shutil.copytree(source_path, final_path)
die Variable final_path muss weiter gegeben werden

Danke im Vorraus
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

RSMVDL hat geschrieben: Wie gebe ich dem 2en Script den eindeutigen Pfad mit?
Ich weiß nicht genau, ob ich Deine Frage richtig verstehe. Du kannst einem Script Parameter übergeben; dazu kannst Du z.B. das ``argparse``-Modul benutzen.

Oder willst Du den Pfad "automatisch" an das zweite Script übergeben? Das geht nicht so ohne weiteres...
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
RSMVDL

Ja genau das würde ich gerne machen ;) also quasi das der eindeutige Pfad dem 2ten Script bekannt ist!
xeike
User
Beiträge: 83
Registriert: Donnerstag 28. Februar 2013, 09:58

Wie rufen sich denn deine Skripte auf?
  • 1. Du könntest es über Funktionen lösen. Hierbei wird Skript 2 einfach per import eingebunden

    2. Über eine Pipe
    ./foo.py | ./bar.py

    3. Über eine Datei in die Skript 1 seine Ausgabe schreibt und von der Skript 2 liest

    4. Durch ein Monitor-Programm, welches die beiden Skripte nacheinander aufruft und die Ein- und Ausgaben verwaltet

    5. Socket, Shellvariable, ...

    6. Schreiben eines Python-Moduls durch Skript 1, welches von Skript 2 importiert wird,
Xe
RSMVDL

Ich merk schon das wird ein gewirr ;)
Ich schreib doch mal lieber alles in eins rein ;)
Wie würde ich denn das 2te Script in das erste einhängen. also nur rein von der Syntax her?
xeike
User
Beiträge: 83
Registriert: Donnerstag 28. Februar 2013, 09:58

RSMVDL hat geschrieben:Wie würde ich denn das 2te Script in das erste einhängen. also nur rein von der Syntax her?

Code: Alles auswählen

import skript2
:twisted:

Xe
RSMVDL

Also müsste Script 1 so aussehen:

Code: Alles auswählen

import shutil
from tempfile import mktemp
#Source in Temp_Datei umwandeln
source_path = input('Path to source files: ')
final_path = mktemp(prefix='tmp_iso_', dir='/media')
shutil.copytree(source_path, final_path)
#Datei editieren
import preparing.py
und Script 2 so:

Code: Alles auswählen

import os
from inject import final_path

os.path.isfile(final_path)

???

Wobei kann das

Code: Alles auswählen

import preparing.py
nicht weg?
xeike
User
Beiträge: 83
Registriert: Donnerstag 28. Februar 2013, 09:58

RSMVDL hat geschrieben:Also müsste Script 1 so aussehen:
Falls du das analog zu meinem Vorschlag #6 meinst: Nein!

skript1 erzeugt eine Datei mit dem Namen "superpfad.py". Der Inhalt der Datei ist eine Variable mit dem Inhalt des Pfades, den du weiterreichen möchtest.

skript 2 importiert superpfad.py, liest die darin enthaltene Variable aus und freut sich.

Edit1: Zählen müsste man können ;-) #1->#6
Zuletzt geändert von xeike am Dienstag 16. April 2013, 21:10, insgesamt 1-mal geändert.
Sirius3
User
Beiträge: 17710
Registriert: Sonntag 21. Oktober 2012, 17:20

@RSMVDL: nein, Du schreibst keine Skriptdateien, die nacheinander importiert werden, sondern einzelne Funktionen, die nacheinander aufgerufen werden, ob die nun in einer Datei oder mehrere sind, ist dann egal.
Antworten