我有两个文件列表,我正在使用以下方式从FTP文件夹中提取:
sFiles = ftp.nlst(date+'sales.csv')
oFiles = ftp.nlst(date+'orders.csv')
这将会得到两个列表,看起来像这样:
sFiles = ['20170822_sales.csv','20170824_sales.csv','20170825_sales.csv','20170826_sales.csv','20170827_sales.csv','20170828_sales.csv']
oFiles = ['20170822_orders.csv','20170823_orders.csv','20170824_orders.csv','20170825_orders.csv','20170826_orders.csv','20170827_orders.csv']
使用我的真实数据集,类似以下这种情况...
for sales, orders in zip(sorted(sFiles),sorted(oFiles)):
df = pd.concat(...)
能够得到我想要的结果,但有时会出现问题,两个文件都没有进入正确的FTP文件夹,所以我想要一些代码来创建一个可迭代对象,在其中可以根据日期提取匹配的订单和销售文件名。
以下代码有效...我不确定它的"pythonic"分数是多少。可读性差,但它是一个推导式,所以我想应该有性能上的优势?
[(sales, orders) for sales in sFiles for orders in oFiles if re.search(r'\d+',sales).group(0) == re.search(r'\d+',orders).group(0)]
sales[:8]==orders[:8]
就可以工作了。 - Mark Tolonen