使用“with open”和“project-lib”访问 Watson Studio 笔记本(.log 文件)中的资产
Posted
技术标签:
【中文标题】使用“with open”和“project-lib”访问 Watson Studio 笔记本(.log 文件)中的资产【英文标题】:Accessing asset in Watson Studio notebook (.log file) using 'with open' and 'project-lib' 【发布时间】:2020-11-24 09:55:15 【问题描述】:我正在尝试在 Watson Studio(云)中部署一个正常工作的 python 3.6 笔记本。但是我正在努力访问文件/资产。 将 .log 文件上传到我的资产后,我想使用
打开并处理它with open(project.get_file('messages.log'), 'r') as file:
错误信息返回
TypeError: expected str, bytes, or os.PathLike object, not _io.BytesIO
除了告诉我如何打开/读取日志文件之外,我还希望简要解释一下为什么 project.get_file 返回一个 BytesIo 对象。
【问题讨论】:
【参考方案1】:project-lib 的函数 get_file 从 Watson Studio 项目的存储中读取文件。 你可以像这样阅读你的文件:
buffer = project.get_file('messages.log')
log_file = buffer.getvalue()
我不确定为什么决定返回一个 BytesIo 对象,但它非常方便,例如如果您想将数据读入 pandas 数据框:
my_file = project.get_file('myFile.csv')
my_file.seek(0)
import pandas as pd
pd.read_csv(my_file, nrows=10)
您可以在此处找到project-lib
的文档:project-lib for Python
【讨论】:
谢谢西蒙娜。不幸的是,这不能正常工作。尽管正在创建对象 log_file,但它是空的。另外,请注意,我正在尝试使用 open 函数,这会导致所描述的错误。我可以将字节对象转换为字符串对象(我已经这样做了),但无论如何,该对象是空的/不包含日志信息。以上是关于使用“with open”和“project-lib”访问 Watson Studio 笔记本(.log 文件)中的资产的主要内容,如果未能解决你的问题,请参考以下文章
Python中open和with open有什么区别?怎么用?
区别 |Python的 open() 和with open() as
软件测试中,python 中 open与with open 的区别?
使用“with open”和“project-lib”访问 Watson Studio 笔记本(.log 文件)中的资产