首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将文件(.csv)加载到Beeware/公文包应用程序中?

如何将文件(.csv)加载到Beeware/公文包应用程序中?
EN

Stack Overflow用户
提问于 2021-08-04 15:46:42
回答 1查看 103关注 0票数 0

我使用kivy作为GUI,使用公文包作为打包工具。我的.kv文件位于appname/project/src/projectName/resources文件夹中。我还需要一个.csv文件,在同一个文件夹中,并希望与它一起使用pandas。导入包没有问题(我将它们添加到.toml文件中)。我无法使用完整路径,因为当我打包应用程序时,每台计算机上的路径将不同。使用app.py文件的相对路径不起作用,出现文件未找到错误。有没有办法使用相对路径(可能是.toml文件中的source参数)读取文件?

代码语言:javascript
复制
kv = Builder.load_file('resources/builder.kv')
df = pd.read_csv('resources/chemdata.csv')

class ChemApp(App):
    def build(self):
        self.icon = 'resources/elemental.ico'
        return kv
EN

回答 1

Stack Overflow用户

发布于 2021-11-21 23:18:07

尽管我使用的是BeeWare的Toga GUI,但我刚刚遇到并解决了公文包的类似问题。

在我的例子中,主Python文件app.py必须访问数据库文件resources/data.csv。在我用app.py创建主窗口的类的构造函数中,我添加了以下行(导入行不在那里,但为了清楚起见在这里包含了它):

代码语言:javascript
复制
from pathlib import Path

self.resources_folder = Path(__file__).joinpath("../resources").resolve()
self.db_filepath = self.resources_folder.joinpath("data.csv")

然后我使用self.db_filepath在我的手机上成功地打开了CSV文件。

__file__返回当前文件在任何平台或设备上的路径。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68654307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档