使用boto3和python从S3存储桶目录中仅读取特定格式的文件

RK。

在我的s3存储桶目录中,我有多个文件,例如.csv,.log,.txt等。但是我需要从单个目录中读取只读.log文件,并使用boto3附加它们。我尝试了下面的代码,但它正在读取所有文件数据,无法使用* .log进行限制,并且结果将以单行形式出现,并由“ \ n”分隔,如下所述。
我如何读取日志文件并合并它们,结果应该逐行出现。

    import boto3
    import pandas as pd
    import csv
    
    s3 = boto3.resource('s3')
    my_bucket = s3.Bucket('my_bucket')
    
    lst = []
    for object in my_bucket.objects.filter(Prefix="bulk_data/all_files/"):
        print(object.key)
        bdy = object.get()['Body'].read().decode('utf-8')
        lst.append(bdy)
        bdy = ''
    print(lst)

这样的第一个输出以'\ n'作为分隔符。'12345,6006,7290,7200,JKHBJ,S,55 \ n44345,6996,6290,7288,JKHkk,R,57 \ n ..........'

我应该得到如下内容:

12345,6006,7290,7200,JKHBJ,S,55

44345,6996,6290,7288,JKHkk,R,57

...

马辛

filter 只需要前缀,后缀不因此,您必须自己过滤它,例如使用:

import boto3
import pandas as pd
import csv

s3 = boto3.resource('s3')
my_bucket = s3.Bucket('my_bucket')

lst = []
for s3obj in my_bucket.objects.filter(Prefix="attachments/"):
    
    # skip s3 objects not ending with csv
    if (not s3obj.key.endswith('csv')): continue
        
    print(s3obj.key)
    bdy = s3obj.get()['Body'].read().decode('utf-8')
    lst.append(bdy)
    bdy = ''
    
#print(lst)

for file_str in lst:
    for line in file_str.split('\n'):
        print(line)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用lambda函数和boto3从s3存储桶读取csv文件?

如何使用pyspark和boto3检查S3存储桶中是否存在特定目录

列出使用Python和Boto3的S3存储桶的目录内容吗?

使用 python boto 仅下载 S3 存储桶中的特定文件夹

使用boto3,Python从S3存储桶中查找最新的CSV文件

Python AWS Boto3:如何从S3存储桶读取文件?

使用Boto3从S3存储桶读取文件内容

Lambda Python boto3将文件存储在S3存储桶中

在 Python (Boto3) 中打开 S3 存储桶中的 .docx 文件

使用 Boto3 和 Python 将 tar.gz 文件上传到 S3 存储桶

如何将S3存储桶中的选定文件转换为雪花阶段,以便使用python和boto3将数据加载到雪花中

Boto3仅获得特定区域的S3存储桶

尝试使用python2.7中的boto3模块从S3存储桶和S3存储桶获取CSV文件时出现无效的时间戳记错误

从S3存储桶读取文件到PySpark Dataframe Boto3

从多个文件夹的s3存储桶中仅读取特定的json文件

如何使用Boto将文件上传到S3存储桶中的目录

如何使用Boto将文件上传到S3存储桶中的目录

如何使用 boto3 同步 AWS S3 存储桶和本地文件夹

如何使用boto3从特定对象开始遍历s3存储桶?

演示如何使用boto3从S3存储桶中删除一个或多个特定密钥

从boto3检索S3存储桶中的子文件夹名称

使用boto3从S3存储桶下载文件时出现ValueError吗?

使用Boto3将文件上传到带前缀的S3存储桶

如何使用python(boto3)连接到带有pem文件的Amazon S3存储桶

使用 Python 和 Boto3 从 S3 读取多个 CSV 文件

使用boto3和python从Amazon s3读取zip文件

使用boto3检查s3中存储桶中是否存在密钥

使用 boto3 和 python flask 将 CSV 文件上传到 S3 存储桶时出现错误 500

无法使用 python boto3 模块连接到 nexrad aws s3 存储桶