我正在使用以下代码从 gmail 附件下载 csv 文件。生成的输出文件看起来像 ^I delimited,我不确定如何将其更改为其他分隔符,以便可以将其加载到 pandas 数据框中。
message = service.users().messages().get(userId=user_id, id=msg_id).execute()
for part in message['payload'].get('parts', ''):
if part['filename']:
file_name = part['filename']
att_id = part['body']['attachmentId']
att = service.users().messages().attachments().get(userId=user_id, messageId=msg_id,
id=att_id).execute()
data = att['data']
file_data = base64.urlsafe_b64decode(data.encode('UTF-8'))
with open(path, 'wb') as f:
f.write(file_data)
输出文件内容分隔如下 - 位置 ID^IProcessed Currency Code^IExternal MID^IDBA Name
编辑 1: 现在我使用制表符作为分隔符,但在将文件读入数据框时出现不同的错误。也许,它与 urlsafe_b64decode 或 data.encode('UTF-8') 有关,但我无法理解。gmail 中的实际附件文件是制表符分隔文件。
UnicodeDecodeError:“utf-8”编解码器无法解码位置 0 的字节 0xff:无效的起始字节