-2

我有一个在我们的服务器上运行的 Python 脚本。它会生成一些已排序的 .csv 文件和带有图形的 .PDF 文件。我正在尝试构建另一个脚本,它将选择某些文件并将它们通过电子邮件发送给一组用户。这是某种伪代码:

  • 处理 .CSV 文件:VC506.csv、VC507.csv、VC1020。csv 等等...基于某些标准并生成一个输出文件,其中包含满足标准的所有 CSV 文件的列表。我做了那部分。所以,我确实有一个输出文件。让它只是一个文本文件 output.txt,或者让它变得更好todays_date_output.txt

  • 我现在需要实现的部分是通过电子邮件将该文件与相应的 .pdf 文件一起发送。PDF 文件的名称与 .CSV 文件相同。为了不让你感到困惑,基本上,如果我的脚本选择了 VC506.csv、VC507.csv 文件,那么我需要通过电子邮件发送 VC506.pdf、VC507.pdf 文件。

    我想最好的办法是将输出文件和所有相应的 pdf 文件放入一个 ZIP 存档中,因为可能有很多 PDF。

电子邮件可能看起来像这样:

Subject: testing results, July 10, 2013
Body: attached is the list of all the battery cells that appeared to be faulty.
4

2 回答 2

1

这与其说是一个普遍的求助请求,不如说是一个普遍的问题,但您似乎走在了正确的轨道上,因为您对解决方案有一个清晰的轮廓。现在你只需要这样做。看看os.path(文件扩展名)、zipfileemail/smtplib模块的文档,你就可以上路了。

于 2013-07-10T20:24:42.767 回答
1

好的,我让一切正常。在 Paulo Almeida 提供的一些提示的帮助下,我自己能够弄清楚。

To get the filename with no extension i used:

导入 os、os.path、zipfile、csv

path="processed_data/"  # insert the path to the directory of interest

dirList=os.listdir(path)
for filename in dirList:
    if filename.endswith((".csv")):
        file=os.path.splitext(filename)  #to stip off the extension
        statfiles.append(file[0])        # that will create a list with just the
                                         # filenames without extensions      

然后选择需要的文件并将它们打包到 zip 中:

pdfs = zipfile.ZipFile("pdfs.zip","w")
for item in statfiles:
   pdfs.write('pdf_folder/'+item+'.pdf')
pdfs.close()

要通过电子邮件发送,我只使用了一个脚本,可以在 StackOVerflow 上找到。如果这篇文章对任何人有帮助,我会再次指出我的业力))祝你好运。

于 2013-07-11T17:00:12.933 回答