У меня есть этот простой скрипт, который прикрепляет текстовый файл к электронному письму на Python. Когда я запускаю этот скрипт в IDLE, он отлично работает. Когда я запускаю его в сени Экспресс однако, я получаю эту ошибку: (Файл text.txt находится в том же каталоге, что и сценарий питона)Ошибка Python в Canopy, но не в IDLE
---------------------------------------------------------------------------
IOError Traceback (most recent call last)
C:\Program Files (x86)\Enthought\Canopy32\App\appdata\canopy-1.2.0.1610.win-x86\lib\site-packages\IPython\utils\py3compat.pyc in execfile(fname, glob, loc)
195 else:
196 filename = fname
--> 197 exec compile(scripttext, filename, 'exec') in glob, loc
198 else:
199 def execfile(fname, *where):
C:\Users\499293\Desktop\Project Folder\attachex.py in <module>()
7
8 # Read a file and encode it into base64 format
----> 9 fo = open(filename, "rb")
10 filecontent = fo.read()
11 encodedcontent = base64.b64encode(filecontent) # base64
IOError: [Errno 2] No such file or directory: 'text.txt'
Это код, я использую:
#!/usr/bin/python
import smtplib
import base64
filename = "text.txt"
# Read a file and encode it into base64 format
fo = open(filename, "rb")
filecontent = fo.read()
encodedcontent = base64.b64encode(filecontent) # base64
sender = '[email protected]'
reciever = '[email protected]'
marker = "AUNIQUEMARKER"
body ="""
This is a test email to send an attachement.
"""
# Define the main headers.
part1 = """From: From Person <[email protected]>
To: To Person <[email protected]>
Subject: Sending Attachement
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=%s
--%s
""" % (marker, marker)
# Define the message action
part2 = """Content-Type: text/plain
Content-Transfer-Encoding:8bit
%s
--%s
""" % (body,marker)
# Define the attachment section
part3 = """Content-Type: multipart/mixed; name=\"%s\"
Content-Transfer-Encoding:base64
Content-Disposition: attachment; filename=%s
%s
--%s--
""" %(filename, filename, encodedcontent, marker)
message = part1 + part2 + part3
try:
smtpObj = smtplib.SMTP('mailhost.work.com', 25)
smtpObj.sendmail(sender, reciever, message)
print "Successfully sent email"
except Exception:
print "Error: unable to send email"
Я действительно не понимаю, что означает ошибка или почему я получаю ее с помощью Canopy, но не IDLE. (Я только что скачал Навес воспользоваться встроенной в Matplotlib и NumPy)
Не навеса позволяет вам перетаскивать текстовые файлы в программу? Я помню, что у левой стороны был список доступных элементов/переменных. –
@EdgarAroutiounian имеет браузер документов, который я могу перетащить файлы для редактирования. – diggers3