【问题标题】:Python: filename matching using regexPython:使用正则表达式匹配文件名
【发布时间】:2020-10-09 23:38:03
【问题描述】:

我已经写了这段代码

import os
from datetime import datetime
import re

now = datetime.now() 
filename = now.strftime("%Y%m%d%H%M") #For example 202006191839

for fname in os.listdir(downloadPath):                
   if re.match('export_' + filename + '[0-9]{2}.xlsx', fname):
      print(fname)

在 downloadPath 我有这些文件

  • export_20200619183900.xlsx
  • export_20200619183921.xlsx
  • export_20200619183930.xlsx

但是 re.match 没有按要求匹配。

但是,如果我改变了

filename = now.strftime("%Y%m%d%H%M")

一个简单的任务

filename = "202006191839"

代码有效。 问题是,我需要动态数据。

谁能帮帮我?

【问题讨论】:

  • Errrr, datetime.now() 提供您当前的当地时间。你确定你有一个带有这个时间戳的文件吗?每次运行脚本时它都会改变。
  • 是的,文件是在相同的过程中下载的,几秒钟前。

标签: python python-3.x regex file-handling


【解决方案1】:

我认为是因为您匹配'export_' + filename,但您说文件是excel_20200619183900

【讨论】:

  • 不不,对不起,文件是export_xxxxxxxx。我在帖子里写错了!
【解决方案2】:

好的。

我解决了这个问题...我可能是盲人 我搜索的文件是在上述代码之前下载的,尽管很小,但搜索命令在下载之前开始...... 我在搜索命令之前添加了一个简单的 time.sleep(2)。

谢谢大家。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-11
    • 2011-03-14
    • 1970-01-01
    • 2015-02-18
    相关资源
    最近更新 更多