Seite 1 von 1

Weitergabe von Variablen

Verfasst: Dienstag 16. April 2013, 19:24
von 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

Re: Weitergabe von Variablen

Verfasst: Dienstag 16. April 2013, 19:35
von Hyperion
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...

Re: Weitergabe von Variablen

Verfasst: Dienstag 16. April 2013, 19:39
von RSMVDL
Ja genau das würde ich gerne machen ;) also quasi das der eindeutige Pfad dem 2ten Script bekannt ist!

Re: Weitergabe von Variablen

Verfasst: Dienstag 16. April 2013, 19:46
von xeike
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

Re: Weitergabe von Variablen

Verfasst: Dienstag 16. April 2013, 19:50
von 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?

Re: Weitergabe von Variablen

Verfasst: Dienstag 16. April 2013, 19:52
von xeike
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

Re: Weitergabe von Variablen

Verfasst: Dienstag 16. April 2013, 20:16
von 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?

Re: Weitergabe von Variablen

Verfasst: Dienstag 16. April 2013, 20:24
von xeike
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

Re: Weitergabe von Variablen

Verfasst: Dienstag 16. April 2013, 20:44
von Sirius3
@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.