• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
un in uno python script altra da directory importare python3 posto una import variabile from 3 directory?

[Problema] Importare in Python 3 una variabile da uno script posto in un'altra directory?
#1
Ciao a tutti,

ho un problema che non sono riuscito a risolvere, su raspbian in uno script Python 3 devo importare da un altro file posto in un altra cartella una variabile con la sintassi from .... import. Ma non ci riesco. C'è un modo?

il mio esempio è il seguente:

Nella cartella mnt/usbhd sto compilando uno script in Python3 la variabile che deve importare sta in un file posto nella cartella home/pi/Ductsoup_Python_TSL2561 che si chiama Ductsoup_Python_TSL2561.
ho provato a scrivere così ma non funziona:

from home/pi/Ductsoup_Python_TSL2561/Ductsoup_Python_TSL2561 import *

Sapete come posso risolvere?

Grazie dell'attenzione ed un saluto a tutti Smile

LaPa
With a little/big help from my friends Rolleyes
Risposta
#2
Sicuramente ci sarà il modo, ma quello più semplice che mi viene in mente è fare "alla tedesca" : dal primo script scrivi il contenuto della variabile in un file di testo, il secondo, lo va a leggere dal file di testo.
Risposta
#3
non ho capito bene, comunque non penso sia la soluzione giusta. La variabile è concatenata a molte altre che sono nella cartella Ductsoup quindi non penso possa funzionare.
With a little/big help from my friends Rolleyes
Risposta
#4
se ho capito bene Zzed ti ha consigliato di usare un file di testo di appoggio, dove uno script scrive e dove l'altro script legge.
quindi ogni volta che la variabile cambia, fra le altre cose va ad aggiornarsi nel file txt.
il secondo script invece con la frequenza che decidi tu (chessò, ogni 5 secondi) va ad aprire lo stesso txt e va a leggere la variabile e la importa.

secondo me ti semplificherebbe la vita, l'unica cosa sui quali ho i dubbi, si potrebbe provare, è vedere cosa succede quando il primo script apre il file e nello stesso momento lo fa anche il secondo script. (o viceversa)
non vorrei che se uno script trova il file aperto dall'altro genera un errore che andrebbe gestito...
se dopo riesco provo a buttare giù qualcosa
Risposta
#5
Certo, se il file è "occupato" ritorna un errore, che va gestito (tipo se va in errore, riprova)
Risposta
#6
allora, ho buttato giù qualcosa per rendere l'idea. stilisticamente fa schifo, ma l'ho fatto in velocità

nel primo file a.py il codice è il seguente
Codice:
from time import sleep
a = 0
while True:
    with open("temp.txt", "w") as log:
        print(a)
        log.write(str(a))
        log.close()
        a = a + 1
        sleep(1)


nel secondo file b.py il codice è il seguente
Codice:
from time import sleep
while True:
    with open("temp.txt", "r") as log:
        a = log.read()
        print(a)
        log.close()
        sleep(10)

ora, se fai partire gli script in contemporanea, il primo script inizializza la variabile a == 0 e la incrementa ogni secondo scrivendola nel file temp.txt
il secondo script ogni 10 secondi (per rendere l'asincronia) va a leggere lo stesso file temp.txt, prende il valore e lo attribuisce alla variabile a del secondo script.


se tu incorpori queste due porzioni di codice nelle tue funzioni dei tuoi due file .py, dovresti essere in grado di farle comunicare

(20/11/2017, 22:03)Zzed Ha scritto: Certo, se il file è "occupato" ritorna un errore, che va gestito (tipo se va in errore, riprova)

allora, io ho provato con gli script che vedi in simultanea ed errori non me ne da, forse se si accavallano in quel lasso di millisecondi dove entrambi manipolano lo stesso txt
Risposta
  


Vai al forum:


Navigazione: 1 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect