我在S3存储桶中有一个名为data.dat
的文件,该文件的内容为3行
fruit javaisnotafruit xyq
我正在以这种方式阅读s3
objectcontent = s3.get_object(Bucket="contents-bucket", Key=obj['Key'])
contentsins3 = objectcontent['Body'].read().decode('utf-8')
print(contentsins3)
当我print(contentsins3)
时,我正在
fruit javaisnotafruit xyq
我有循环内容并读取每一行的代码,我该怎么做?
for i in contentsins3:
print(i)
我如何逐行获取S3中的每一行?
答案 0 :(得分:1)
正文是streaming,但是当你这样做时,你将它全部消耗到EOF:
objectcontent['Body'].read()
所以,不要这样做。代替:
import encodings
stream = encodings.utf_8.StreamReader(objectcontent['Body'])
for line in stream:
...
答案 1 :(得分:0)
这只是普通的字符串解析,无论存储如何。
回到python,对象contentsins3
包含整个文件数据,以及 line break
。
您可以使用splitlines()来处理\n
,\r\n
。
for i in contentsins3.splitlines():
print(i)