存档桌面并通过邮件发送到python

存档桌面并通过邮件发送到python,python,email,permissions,Python,Email,Permissions,我制作了一个python脚本,用于存档文件夹并通过邮件发送,但当我尝试运行它时,它会给我以下错误: import os import zipfile def zipdir(path, ziph): for root, dirs, files in os.walk(path): for file in files: ziph.write(os.path.join(root, file)) zipf = zipfile.ZipFile('py39.zip', 'w', zip

我制作了一个python脚本,用于存档文件夹并通过邮件发送,但当我尝试运行它时,它会给我以下错误:

import os
import zipfile
def zipdir(path, ziph):
for root, dirs, files in os.walk(path):
    for file in files:
        ziph.write(os.path.join(root, file))
zipf = zipfile.ZipFile('py39.zip', 'w', zipfile.ZIP_DEFLATED)
fn1 = 'py39.zip'
p = os.popen('attrib +h ' + fn1)
t = p.read()
p.close()
zipdir('./file', zipf)
zipf.close()
fn1 = 'py39.zip'
p = os.popen('attrib +h ' + fn1)
t = p.read()
p.close()
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
email_user = 'sender@gmail.com'
email_password = 'password'
email_send = 'destinatario@gmail.com'
subject = 'File desktop'
msg = MIMEMultipart()
msg['From'] = email_user
msg['To'] = email_send
msg['Subject'] = "File"
body = "a"
msg.attach(MIMEText(body,'plain'))
filename = "py39.zip"
directory = "./desktop"
attachment  =open(directory,'rb')
part = MIMEBase('application','octet-stream')
part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header('Content-Disposition',"attachment; filename= "+filename)
msg.attach(part)
text = msg.as_string()
server = smtplib.SMTP('smtp.gmail.com',587)
server.starttls()
server.login(email_user,email_password)
server.sendmail(email_user,email_send,text)
server.quit()
PermissionError:[Errno 13]权限被拒绝:“py39.zip”

有没有不使用CACL的解决方案

这是脚本:

import os
import zipfile
def zipdir(path, ziph):
for root, dirs, files in os.walk(path):
    for file in files:
        ziph.write(os.path.join(root, file))
zipf = zipfile.ZipFile('py39.zip', 'w', zipfile.ZIP_DEFLATED)
fn1 = 'py39.zip'
p = os.popen('attrib +h ' + fn1)
t = p.read()
p.close()
zipdir('./file', zipf)
zipf.close()
fn1 = 'py39.zip'
p = os.popen('attrib +h ' + fn1)
t = p.read()
p.close()
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
email_user = 'sender@gmail.com'
email_password = 'password'
email_send = 'destinatario@gmail.com'
subject = 'File desktop'
msg = MIMEMultipart()
msg['From'] = email_user
msg['To'] = email_send
msg['Subject'] = "File"
body = "a"
msg.attach(MIMEText(body,'plain'))
filename = "py39.zip"
directory = "./desktop"
attachment  =open(directory,'rb')
part = MIMEBase('application','octet-stream')
part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header('Content-Disposition',"attachment; filename= "+filename)
msg.attach(part)
text = msg.as_string()
server = smtplib.SMTP('smtp.gmail.com',587)
server.starttls()
server.login(email_user,email_password)
server.sendmail(email_user,email_send,text)
server.quit()
Pastebin链接: