【发布时间】:2022-01-04 02:09:08
【问题描述】:
我正在尝试读取从 AWS 存储中提取的 python 中的制表符分隔值 txt 文件。 (使用 XXX 审查 AWS 的凭据)
import io
import pandas as pd
import boto3
import csv
from bioservices import UniProt
from sqlalchemy import create_engine
s3 = boto3.resource(
service_name='s3',
region_name='us-east-2',
aws_access_key_id='XXX',
aws_secret_access_key='XXX'
)
这只是为了连接到 AWS。接下来,当我运行此代码以读取存储在 AWS 中的制表符分隔的 txt 文件时
txt = s3.Bucket('compound-bioactivity-original-files').Object('helper-files/kinhub_human_kinase_list_30092021.txt').get()
txt_reader = csv.reader(txt, delimiter='\t')
for line in txt_reader:
print(line)
我得到的输出不是我想要的。并且使用 dialect='excel-tab' 而不是 delimiter='\t' 也会给我相同的输出
['ResponseMetadata']
['AcceptRanges']
['LastModified']
['ContentLength']
['ETag']
['VersionId']
['ContentType']
['Metadata']
['Body']
【问题讨论】:
-
如何检测带有
\n或\br的行,然后使用\t分隔符对其进行迭代,然后将给定的行彼此附加到数组或数据框中? -
旁注: 将凭据存储在源代码中通常是不好的做法。相反,使用 AWS CLI
aws configure命令将 AWS 凭证存储在凭证文件中,boto3 会自动找到它们。
标签: python python-3.x amazon-web-services