当前位置: 首页 > 知识库问答 >
问题:

如何获取文件元数据,如上次修改日期(Python)

巫经义
2023-03-14

我在databricks中安装了一个s3 bucket,我可以看到文件列表,也可以使用python读取文件

ACCESS_KEY = "XXXXXXXXXX"
SECRET_KEY = "XXXXXXXXXXXXXX"
ENCODED_SECRET_KEY = SECRET_KEY.replace("/", "%2F")
AWS_BUCKET_NAME = "testbucket"
MOUNT_NAME = "awsmount1"

dbutils.fs.mount("s3a://%s:%s@%s" % (ACCESS_KEY, ENCODED_SECRET_KEY, AWS_BUCKET_NAME), "/mnt/%s" % MOUNT_NAME)
display(dbutils.fs.ls("/mnt/%s/data" % MOUNT_NAME))

我想找出我正在阅读的文件的上次修改日期,我找不到太多,但java选项数据砖读取Azure blob的上次修改日期为azure blob,数据砖中有一个python本机选项来读取文件元数据

共有1个答案

景承教
2023-03-14

如果我理解正确的话,您需要使用python原生sdk在Azure数据块中安装文件的最后修改日期。

以下是从Azure blob获取元数据信息的示例代码:

from azure.storage.blob import BlockBlobService
block_blob_service = BlockBlobService(account_name='accoutName', account_key='accountKey')
container_name ='containerName'
block_blob_service.create_container(container_name)
generator = block_blob_service.list_blobs(container_name)
for blob in generator:
    lastModified= BlockBlobService.get_blob_properties(block_blob_service,container_name,blob.name).properties.last_modified
    print("\t Blob name: " + blob.name)
    print(lastModified)

您可以在此处获取有关此内容的更多详细信息。

如果您正在寻找S3,那么我建议您使用Boto.oto3在使用(S3)Object python对象时返回LastModified的日期时间对象:

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#S3.Object.last_modified

要将上次修改日期与今天的日期(Python3)进行比较,

import boto3
from datetime import datetime, timezone

today = datetime.now(timezone.utc)

s3 = boto3.client('s3', region_name='eu-west-1')

objects = s3.list_objects(Bucket='my_bucket')

for o in objects["Contents"]:
    if o["LastModified"] == today:
        print(o["Key"])

参考

希望有帮助。

 类似资料:
  • 我需要知道如何才能提到"过滤"的文件,例如每天的文件:2到12。 我已经尝试与此代码,但我得到所有的文件日期没有过滤他们 文件日期的结果

  • 我需要获取Azure Databricks下DBFS装载点(ADLS Gen1)中所有文件夹和文件的最后修改日期。文件夹结构如下: 使用以下Python代码获取最后修改日期: 从上面的代码中,我得到了所有包含文件的文件夹的正确修改日期。 但对于空文件夹,它会给出当前日期。不是上次修改日期。 然而,当我硬编码空文件夹的路径时,它会给出正确的修改日期: 打印(datetime.fromtimestam

  • 我正试图在databricks笔记本的目录中查找最新的拼花文件。dbfsutils.fs.ls似乎不支持任何有关文件或文件夹的元数据。python中有没有其他方法可以做到这一点?数据存储在azure数据湖中,该数据湖安装在“/mnt/foo”下的DBFS上。感谢任何帮助或指点。

  • 问题内容: 我有一个脚本,该脚本需要根据文件创建和修改日期执行一些操作,但必须在Linux和Windows上运行。 在Python中获取文件创建和修改日期/时间的最佳跨平台方法是什么? 问题答案: 以跨平台的方式获取某种修改日期很容易-只需调用,你就会获得Unix时间戳,该时间戳是文件的最后修改时间。 另一方面,获取文件的创建日期是不固定的,并且依赖于平台,甚至在三大操作系统之间也有所不同: 在上

  • 问题内容: 有什么标准的方法可以告诉您页面的最后修改时间?目前,我正在这样做: 但是,看起来有些站点没有字段。 http://www.cbc.ca具有以下标头字段: 我可以解析页面以尝试获取其日期,但这似乎是一个很大的痛苦。标准是什么? (如果可能的话,我想坚持使用URLConnection,因为那是我用来下载网页的方法) 问题答案: 没有标准。动态生成的网页通常没有“ Last- Modifie

  • 问题内容: 想知道目录的上次修改日期何时更改。我修改了特定目录中的文件(通过FTP),但目录的LMD不变。应该如何运作? 问题答案: 当添加,删除或重命名文件或子目录时,目录本身上的mtime(修改时间)会更改。 修改目录中文件的内容不会更改目录本身,也不会更新文件或子目录的修改时间。如果更改目录的权限,则ctime会更改,而mtime不会。