-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 が存在する可能性があるため、出力ファイルと対応するすべての PDF ファイルを 1 つの ZIP アーカイブに入れるのが最善の方法だと思います。

電子メールは次のようになります。

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

OK、すべてが機能しました。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 にあるスクリプトを使用しました。この投稿が誰かの役に立てば、私のカルマにもう 1 ポイントを与えることができます )) がんばってください。

于 2013-07-11T17:00:12.933 に答える
1

これは、助けを求める一般的な嘆願ほどの質問ではありませんが、解決策の明確な概要があるため、正しい方向に進んでいるようです。今、あなたはそれをしなければなりません。os.path (ファイル拡張子)、zipfile、およびemail/smtplibモジュールのドキュメントを参照してください。

于 2013-07-10T20:24:42.767 に答える