Tengo un archivo (mail.txt) y que tiene contenido como
emailfrom = 'satya@gmail.com' emailto = 'abc@hcl.com','xyz@hcl.com','accc@infy.com' filepath = 'D:\A_2.csv' subject = 'sells report for xyz' body = 'hi axx,find the attached file of sells.'
Y estoy ejecutando un script para enviar correo y en mi script están presentes las variables msg email, emailto, filepath, subject, body.
Entonces, ¿cómo puedo leer ese archivo de texto y leer valores desde allí y asignar variables a mis variables de script?
Por favor recomiende.
Use un diccionario para guardar la información, con ast.literal_eval()
para evaluar adecuadamente sus cadenas y tuple
(o de lo contrario, terminaría con '
todas partes):
import ast with open('mail.txt') as f: d = {k:ast.literal_eval(v) for k,v in (line.strip().split(' = ') for line in f)}
A continuación, tendrá un diccionario que contiene cada valor:
>>> print(*d.items(), sep='\n') ('emailfrom', 'satya@gmail.com') ('emailto', ('abc@hcl.com', 'xyz@hcl.com', 'accc@infy.com')) ('filepath', 'D:\\A_2.csv') ('body', 'hi axx,find the attached file of sells.') ('subject', 'sells report for xyz')
Acceda a los valores como cabría esperar:
>>> d['subject'] 'sells report for xyz'
objFile = open("youfile.txt", "r") lsFileContents = objFile.readlines() strEmailFrom = lsFileContents[0].strip().split("=")[1].strip() strEmailTo = lsFileContents[1].strip().split("=")[1].strip() strFilePath = lsFileContents[2].strip().split("=")[1].strip() strBody = lsFileContents[4].strip().split("=")[1].strip() strSubject = lsFileContents[3].strip().split("=")[1].strip() objFile.close()