我需要找到要移动到具有特定名称和.txt扩展名的文件夹中的文件.我见过这两个例子都用过:

file_check = FileSensor(
  task_id='check_file',
  filepath='filepath/to/folder/*.txt'
)

file_check = FileSensor(
  task_id='file_check',
  filepath='filepath/to/folder/example_file*'
)

如何找到名称中包含特定字符串的文件,例如"Example_FILE_2023-01-01.txt"的"Example_FILE"和.txt/csv文件扩展名?

这两种方法中有哪一种管用吗?

file_check = FileSensor(
  task_id='file_check',
  filepath='filepath/to/folder/example_file**.txt'
)
file_check = FileSensor(
  task_id='file_check',
  filepath='filepath/to/folder/example_file*.txt'
)

我不确定气流的球体匹配是否允许**或AND条件,以及球体匹配是否可以这样使用.

谢谢你的帮忙!

推荐答案

在ApacheAirflow中,您可以使用文件传感器判断文件夹中是否存在与特定模式匹配的文件.您指定的模式可以包括通配符,以根据文件的名称和扩展名匹配文件.但是,需要注意的是,Airflow的FileSensor使用了Python的GLOB模块进行模式匹配,因此它遵循GLOB的规则.

from airflow.sensors.filesystem import FileSensor

file_check = FileSensor(
    task_id='file_check',
    filepath='filepath/to/folder/example_file*.{txt,csv}'
)

在上面的代码中,*用于匹配指定字符串"Example_FILE"之前的任何字符,而{txt,csv}用于匹配.txt或.csv扩展名.这将匹配指定文件夹中的"Example_FILE_2023-01-01.txt"和"Example_FILE_2023-01-01.csv"等文件.

Python相关问答推荐

分组数据并删除重复数据

使用SciPy进行曲线匹配未能给出正确的匹配

我在使用fill_between()将最大和最小带应用到我的图表中时遇到问题

根据不同列的值在收件箱中移动数据

使可滚动框架在tkinter环境中看起来自然

梯度下降:简化要素集的运行时间比原始要素集长

从spaCy的句子中提取日期

Pandas Loc Select 到NaN和值列表

实现神经网络代码时的TypeError

Python Pandas—时间序列—时间戳缺失时间精确在00:00

如何按row_id/row_number过滤数据帧

30个非DATETIME天内的累计金额

在用于Python的Bokeh包中设置按钮的样式

如何过滤组s最大和最小行使用`transform`'

如何反转一个框架中列的值?

数据框,如果值在范围内,则获取范围和

当我定义一个继承的类时,我可以避免使用`metaclass=`吗?

我怎么才能用拉夫分拣呢?

为什么我的scipy.optimize.minimize(method=";newton-cg";)函数停留在局部最大值上?

启动线程时,Python键盘模块冻结/不工作