【问题标题】:Python Validate Filename is of specified format or not with date partPython 验证文件名是否具有指定格式或不带日期部分
【发布时间】:2020-09-18 06:08:24
【问题描述】:

我正在尝试验证名称中包含 datepart 的文件名。我想要做的是我想检查具有指定格式的文件名,其中 datpart 对于不同的文件是不同的。如果文件名不匹配,它应该给我们找不到消息文件。 文件名,例如 =abc_sales_2020-09-01_exp.csv、abc_sales_2020-09-02_exp.csv、abc_sales_2020-09-03_exp.csv。只有日期部分更改其余部分保持不变。


 from datetime import date 
  def get_filename_datetime():
         return "ak_sales_" + str(date.today()) + "_abc"+".csv"
   
   name = get_filename_datetime() print("NAME", name) path = "aks/" +
   name print("PATH", path);
   
   with open(path, "r") as f:
        f.read()

【问题讨论】:

  • 你的问题是什么?代码在哪里没有按预期工作?
  • 代码只检查文件名中的当前日期部分,我需要它用于不同的日期范围,它应该是动态的。我只需要检查文件名是否采用这种格式,即 aks_sales_2020-09-12_abc.csv 并且在此日期部分中每个文件名都不同。
  • 请确保您的代码示例中的语法和缩进是正确的。例如你不需要分号来终止 Python 中的表达式...

标签: python pandas date datetime filenames


【解决方案1】:

您可以使用regex 过滤特定文件,然后使用pandas 打开它们:

import re
import glob
import pandas as pd

for file in glob.glob('*.csv'):
    r = re.findall('\d\d\d\d-\d\d-\d\d', file)
    if r:
        df = pd.read_csv(file)

【讨论】:

  • 它是否适用于日期部分以及不同的文件有不同的日期部分我需要它来运行多个文件
  • 请提供示例文件列表
  • abc_sales_2020-09-01_exp.csv、abc_sales_2020-09-02_exp.csv、abc_sales_2020-09-03_exp.csv、abc_sales_2020-09-04_exp.csv。只有日期部分更改其余部分保持不变
  • 非常感谢您的帮助
  • 如果发现文件在数据框中打开以进一步验证列,您能否再添加一个我想要的更改
猜你喜欢
  • 2013-07-06
  • 1970-01-01
  • 1970-01-01
  • 2021-06-13
  • 1970-01-01
  • 2014-09-02
  • 1970-01-01
  • 2016-04-18
  • 1970-01-01
相关资源
最近更新 更多