当前位置: 首页 > 面试题库 >

使用boto从S3逐行读取文件?

麹浩瀚
2023-03-14
问题内容

我在S3中有一个csv文件,我正在尝试读取标题行以获取大小(这些文件是由我们的用户创建的,因此它们几乎可以是任何大小)。有没有办法使用boto做到这一点?我以为也许我们可以使用python
BufferedReader,但是我不知道如何从S3键打开流。任何建议都很好。谢谢!


问题答案:

看来boto具有read()可以执行此操作的功能。这是一些对我有用的代码:

>>> import boto
>>> from boto.s3.key import Key
>>> conn = boto.connect_s3('ap-southeast-2')
>>> bucket = conn.get_bucket('bucket-name')
>>> k = Key(bucket)
>>> k.key = 'filename.txt'
>>> k.open()
>>> k.read(10)
'This text '

调用会read(n)从对象返回下一个n个字节。

当然,这不会自动返回“标题行”,但是您可以使用足够大的数字来调用它,以最少返回标题行。



 类似资料:
  • 使用boto3,您可以从S3中的某个位置读取文件内容,给定一个bucket名称和密钥,如所示(这假设一个初步的) 这将返回一个字符串类型。我需要获取的特定文件恰好是一组类似字典的对象,每行一个。所以它不是JSON格式。我不想将其作为字符串读取,而是将其作为文件对象进行流式处理并逐行读取;除了先在本地下载该文件外,找不到其他方法来执行此操作 我想问的是,是否有可能在不必先在本地下载的情况下对文件进行

  • 问题内容: 如何使用fseek逐行读取文件? 代码可能会有所帮助。必须是跨平台和纯PHP。 提前谢谢了 问题答案: 问题是使用fseek进行询问,因此只能假定性能是一个问题,而file()不是解决方案。这是使用fseek的一种简单方法: 我的file.txt 和代码: 输出: 您不必像我一样附加到$ lines数组,如果这是脚本的目的,则可以立即打印输出。如果要限制行数,也很容易引入计数器。

  • 问题内容: 我在s3中有一个存储桶,它具有深层的目录结构。我希望我可以一次全部下载它们。我的文件如下所示: 有什么方法可以使用python中的boto lib从s3存储桶中递归下载这些文件? 提前致谢。 问题答案: 您可以按以下方式在存储桶中下载所有文件(未经测试): 请记住,S3中的文件夹只是写密钥名的另一种方法,只有客户端会将其显示为文件夹。

  • 在我的项目中,我需要使用以下库(OMPL)。我特别感兴趣的是一个成员函数printAsMatrix(std::ofstream&out),它将数据输出到终端或文件。这里的函数是: 但我需要这些输出的值在其原始形式,作为双倍。因此,我想通过库阅读它们,使用我自己实现的以下函数: 由于函数只接受std::ifstream数据,我得到了很多编译错误。 所以我做了一个临时的变通办法: > 创建了新的变量:

  • 我正在努力阅读附加的TXT文件,以csv形式显示从文件中读取的每个字段,我做了一个接近我想要的代码,但我没有前进。 TXT文件格式: 我的代码在我想要的位置读取第一行,但下面的行我不能,更不用说重复文件中包含的下一个工资单的读数了。 目前的输出是这样的: 出口应该是怎样的 逐行读取和捕获数据,我必须完成一个工资单,它将在输出中形成一行,第二个工资单将在输出中形成第二行,因此,直到txt文件结束,此

  • 问题内容: 我有一些代码可以从pdf文件中读取。有没有一种方法可以在Windows上使用Pypdf,Python 2.6从pdf文件(不是页面)逐行读取? 这是阅读pdf页面的代码: 更新: 呼叫代码是这样的: 问题答案: 看起来您拥有的是要逐行解释的大量文本数据。 您可以使用StringIO类将该内容包装为可搜索的类似文件的对象: 对于您的情况,请执行以下操作: