当前位置: 首页 > 面试题库 >

访问包子目录中的数据

陶寒
2023-03-14
问题内容

我正在编写一个python软件包,其中包含需要在./data/子目录中打开数据文件的模块。现在,我已经将文件的路径硬编码到了我的类和函数中。我想编写更健壮的代码,无论子目录在用户系统上的安装位置如何,都可以访问该子目录。

我尝试了多种方法,但是到目前为止,我还没有运气。似乎大多数“当前目录”命令返回系统的python解释器的目录,而不是模块的目录。

看来这应该是一个微不足道的普遍问题。但是我似乎无法弄清楚。问题的部分原因是我的数据文件不是.py文件,因此我不能使用导入功能等。

有什么建议?

现在,我的包目录如下所示:

/
__init__.py
module1.py
module2.py
data/   
   data.txt

我试图访问data.txt距离module*.py


问题答案:

您可以使用__file__获取包的路径,如下所示:

import os
this_dir, this_filename = os.path.split(__file__)
DATA_PATH = os.path.join(this_dir, "data", "data.txt")
print open(DATA_PATH).read()


 类似资料:
  • 我有一个子目录()我想访问的是在我的站点的根文件夹。我看了这里: https://wordpress.stackexchange.com/questions/20152/cannot-access-non-wordpress-subdirectories-as-wordpress-overrides-them-with-a-40 我已经尝试了解决方案,但没有任何效果。 我还尝试将一个单独的文件添加

  • 问题内容: 我试图在Swift中访问temp目录。在Objective-C中,我可以使用以下代码进行操作: 但是,对于将类型从Objective-C转换为Swift 或从Swift转换为类型,我有些困惑 。我应该查看任何文件吗? 谢谢。 问题答案: 怎么样: 它没有回答您有关char *的问题,但它更干净… NSFileManager参考在这里。

  • 我正在尝试使用Gulp从主目录复制所选文件,但以下操作无法完成此操作: 什么是正确的设置为使其工作?文档对此非常简洁。

  • 我正在尝试访问。我已经使用ebconfig将json文件下载到/tmp/目录,以在S3上存储私钥。 但它给了我以下错误 错误:EACCES:权限被拒绝,打开“/tmp/firebaseadminsdk”。json’ 文件中有一段说 第二个条目使用S3Auth身份验证方法从指定的URL下载私钥,并将其保存到/etc/pki/tls/certs/server。钥匙然后,代理服务器可以从此位置读取私钥,

  • 我有1个根项目和3个模块(api,模型,存储)在其中。以下是项目结构: 在我的application.java中,我试图从参考资料中读取CSV文件: 解决了此代码工作良好: 要了解更多详细信息,请检查以下答案:作为jar运行时未找到classpath资源

  • 问题内容: 我正在建立一个允许人们上传文件,html页面等的网站…现在我遇到了问题。我有这样的目录结构: 现在,我想禁用PHP,但是要在/ USERS的目录和子目录中启用服务器端包含 可以做到这一点(以及如何:))?提前致谢。 顺便说一句,我使用WAMP服务器 问题答案: 尝试禁用.htaccess文件中的选项: