前提・実現したいこと
pythonでFTPにあるファイル名が日時名のCSVファイルと現在から10分以内の日時ファイル名CSVと重複しているファイルをデスクトップにダウンロードしたいです。
色々調べてset型オブジェクトを使って「print(type(','.join(str(d) for d in download)))」で「dl-item202002222252-1.csv」を抽出することはできましたが、
デスクトップに書き出してくる方法で詰まっています。
with open('C:/Users/*****/Desktop/' + ','.join(str(d) for d in download) , 'wb') as f: ftp.retrlines('RETR %s' % str(download), f.write)
↑の書き方が悪いと思うのですが、どうしたらいいのかわかりません。
よろしくお願いします。
発生している問題・エラーメッセージ
error_perm: 550 {'dl-item202002222252-1.csv'}: No such file or directory
該当のソースコード
# モジュールのインポート from ftplib import FTP ftp = FTP("*****.*****.ne.jp","*****",passwd="*****") #cd ftp.cwd("/ritem/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(','.join(str(d) for d in download)) print(type(','.join(str(d) for d in download))) #あとはftpからdownloadをダウンロードしてくるだけ↓がわからない。 with open('C:/Users/*****/Desktop/' + ','.join(str(d) for d in download) , 'wb') as f: ftp.retrlines('RETR %s' % str(download), f.write) else: print("重複要素がありません")
補足情報(FW/ツールのバージョンなど)
Python 3.7.3
Windows7
jupyter notebook