我需要在Azure Databricks下获得DBFS挂载点(ADLS Gen1)中所有文件夹和文件的最后修改日期。文件夹结构如下:
Not containing any files, Empty folders:
/dbfs/mnt/ADLS1/LANDING/parent/child/subfolder1
/dbfs/mnt/ADLS1/LANDING/parent/child/subfolder2/subfolder3
Containing some files:
/dbfs/mnt/ADLS1/LANDING/parent/XYZ/subfolder4/File1.txt
/dbfs/mnt/ADLS1/LANDING/parent/XYZ/subfolder5/subfolder6/File2.txt
使用以下Python代码获取最后修改日期:
root_dir = "/dbfs/mnt/ADLS1/LANDING/parent"
def get_directories(root_dir):
for child in Path(root_dir).iterdir():
if child.is_file():
print(child, datetime.fromtimestamp(getmtime(child)).date())
else:
print(child, datetime.fromtimestamp(getmtime(child)).date())
get_directories(child)
从上面的代码,我得到正确的修改日期,所有文件夹包含文件。
但是对于空文件夹,它给出当前日期。未修改日期.
然而,当我硬编码空文件夹的路径时,它会给出正确的修改日期:
print(datetime.fromtimestamp(getmtime("/dbfs/mnt/ADLS1/LANDING/parent/child/subfolder1")).date())
有人能帮帮我吗,我在循环中错过了什么?
似乎问题出在处理时间上。我给了一个等待时间:time.sleep(.000005)
。