前提・実現したいこと
FTPサーバの中にある最新のCSVファイルをデスクトップに落としてきたいです。
サーバの中には複数ファイルがあります。
試したこと
['dl-item202002051716-1.csv', 'dl-item202002041308-1.csv', 'dl-item202002140959-1.csv']↑の様なファイル名でサーバの中に落ちてきます。
1.0分後~10分後までファイル名に1分刻みの数字を入れたCSVファイルのリストを取得する。
2.サーバーの中に入っている旧ファイル+数分後に落ちくる時間がファイル名に入ったCSVのリストを取得する。
「1」「2」の中からマッチしたCSVファイルをデスクトップにダウンロードしてきたいのですがうまくいきません。
どうしたらいいでしょうか?デスクトップへの書き出しのところでエラー(SyntaxError: invalid syntax)が起こってしまいます。
理由がわかりません。わかる方よろしくお願いします。
素人なので変な方法でやっていると思います。もっとシンプルにする方法などもあれば教えてください。
発生している問題・エラーメッセージ
File "<ipython-input-20-8b89d4231845>", line 32 with open(r'C:\Users\Users\Desktop\' + download, 'wb') as f: ^ SyntaxError: invalid syntax
該当のソースコード
from ftplib import FTP ftp = FTP("upload.***.ne.jp","***",passwd="***") #cd ftp.cwd("/item/download") # ファイル一覧の取得 files = ftp.nlst() # dl-itemファイル一覧の取得 list1 =[s for s in files if 'dl-item' in s] print(list1) from datetime import datetime as dt from datetime import timedelta now = dt.now() list2 = [] for i in range(1,10): list2.append((now + timedelta(minutes=i)).strftime('dl-item%Y%m%d%H%M-1.csv')) print(list2) list(set(list1) & set(list2)) s1 = set(list1) s2 = set(list2) if s1 & s2: print("重複要素があります") download =s1 & s2 print(download) print(type(download)) #ftpからdownloadをダウンロードしてくる。 with open(r'C:\Users\Users\Desktop\' + download, 'wb') as f: ftp.retrlines('RETR %s' % download, f.write) else: print("重複要素がありません")
補足情報(FW/ツールのバージョンなど)
Python 3.7.3
Windows10
jupyter notebook
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/19 11:01 編集
2020/02/19 09:22 編集
2020/02/19 10:46
2020/02/19 11:11
2020/02/19 11:17
2020/02/19 11:26 編集
2020/02/19 11:25
2020/02/19 14:49
2020/02/20 03:49