βασικά πραγματοποιησα μια δοκιμή ακολουθώντας της οδηγίες του @babaliaris1 και όλα σχεδόν πήγαν καλά και ήταν και αρκετά εύκολο κιόλας.
ο κώδικας :
import subprocess,os,sys
filepath=r'C:\Python27\test'
executable = os.path.join(filepath, 'mybat.bat')
file = open(executable)
text = file.read()
file.close()
input1=r'C:\Python27\test\image.tif'
input2=r'C:\Python27\test\test\spl.tiff'
input3=r'C:\Python27\test\test\as.tiff'
text = text.replace("input1bat", input1)
text = text.replace("input2bat", input2)
text = text.replace("input3bat", input3)
file = open(executable,"w")
file.write(text)
file.close()
subprocess.call(executable)
το μόνο που με προβληματιζει στο παραπάνω παράδειγμα είναι ότι μετά την εκτέλεση του bat αρχείου
αποθηκευονται οι νέες τιμές μεταβλητών σε αυτό,εγώ δεν το θέλω αυτό,μετά την εκτέλεση θα ήθελα να επανέρχονται ξανά οι αρχικές πχ null ξανά.
Γιατί αν πάω να ξανά τρέξω τον ίδιο κώδικα θα πρέπει να αλλάξω τα ονόματα των μεταβλητών πάλι γιατί δεν θα ταιριάζουν για το replace.
Και μια ακόμα απορία πολύ σημαντική,στο παραπάνω κώδικα για παράδειγμα εισάγω ένα input (input1),και παίρνω σαν αποτέλεσμα δυο εικόνες (input2,input3) αν μετά από την εκτέλεση του bat αρχείου θέλω να συνεχίσω στο ίδιο python script να προγραμματιζω με της νέες εικόνες που πήρα σαν αποτέλεσμα από την εκτέλεση του bat,πως θα το κάνω ?θα χρησιμοποιησω ξανά της ίδιες μεταβλητές πχ
input2=r'C:\Python27\test\test\spl.tiff'
input3=r'C:\Python27\test\test\as.tiff'
ή πρέπει να κάνω κάτι άλλο ?
πάντως διάβασα και για shlex,argparse, sys.argv και φαίνονται και αυτά πολύ ενδιαφέρων
αλλά δεν μπόρεσα να ολοκληρώσω κάτι σε αυτά.
αν θέλει κάποιος να ποσταρει ενα παράδειγμα σχετικά με τα παραπάνω θα ήταν πολύ ενδιαφέρων.
Ευχαριστώ