当由不同模块导入时,如何访问 Python 2.7 中的相对路径

2024-04-15

目标:使用从各种 python 模块调用的通用实用程序函数时访问/写入相同的临时文件。

背景:我正在使用 python Unittest 模块来运行一组自定义测试,这些测试通过 pySerial 与仪器接口。因为我使用的是unittest模块,所以我无法将所需的变量(例如要使用哪个串行端口)传递到unittest的测试用例中。为了解决这个问题,我想创建一个存储和返回腌制数据的模块。我遇到了这样的问题:当我从 test_case_1() 调用函数 get_foo() 时,它会尝试从基于 test_case_1() 的相对路径加载腌制数据,而不是包含 get_foo() 的实际模块。

值得注意的是,我已经考虑过使用全局变量,但是我想在运行过程中保留一些数据。这意味着所有 python 模块都将被关闭,我想重新加载上次执行时存储的数据。

我有这样的问题:Python - 使用代码存储库时如何引用资源的相对路径 https://stackoverflow.com/questions/1270951,我以为我在第一个答案中找到了解决方案。令我沮丧的是,这在 Python 2.7 (Debian) 中对我不起作用

当从不同模块调用时,是否有可靠的方法返回特定文件的路径?


也许您知道这一点,但首先是基础知识:

## file one: main.py, main program in your working directory
# this code must run directly, not inside IDLE to get right directory name
import os, mytest
curdir=os.path.dirname(__file__) 
print '-'*10,'program','-'*10
print 'Program in',curdir
print 'Module is in', mytest.curdir
print 'Config contents in module directory:\n',mytest.config()
input('Push Enter')

该模块

## file two: mytest.py, module somewhere in PATH or PYTHONPATH
import os
curdir= os.path.dirname(__file__)

print "Test module directory is "+curdir

## function, not call to function
config=open(os.path.join(curdir,'mycfg.cfg')).read
""" Example output:
Test module directory is D:\Python Projects
---------- program ----------
Program in D:\test
Module is in D:\Python Projects
Config contents in module directory:
[SECTIONTITLE]
SETTING=12

Push Enter
""""
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当由不同模块导入时,如何访问 Python 2.7 中的相对路径 的相关文章

随机推荐

  • 为什么 GETDATE() 不能用作过程参数的默认值或 EXECUTE 语句中的值?

    考虑以下存储过程 CREATE OR ALTER PROCEDURE MySchema MyProcedure myDateTimeParam DATETIME GETDATE AS BEGIN Do something spectacul
  • YouTubePlayerAPI 分发时间表?

    当我发现这个时我非常兴奋谷歌IO视频 http youtu be 3WFsx u q3Y最近 与当前选项 意图 iframe 嵌入 相比 轻松向应用程序添加 YouTube 功能非常有吸引力 令我惊讶的是 尽管距离发布已有几个月了 但除了这
  • 数据融合 - http post 插件问题

    我正在尝试使用 DataFusion 进行 http 调用 来源 GCS csv 文件 接收器 HTTP POST API 期望该文件作为 HTTP 请求的一部分 执行此操作后 我在 API 日志中收到以下错误 所需的请求部分 文件 不存在
  • 在锚链接中添加工具提示[重复]

    这个问题已经存在了 我想在文本中添加工具提示 例如 如果我有这样的代码 a href http google com title Google a 鼠标悬停时 我想显示该工具提示 使用title这是一个好方法 但是我怎样才能让它看起来更好呢
  • Excel 2010:通过外部连接替换表格而不影响其他工作表

    我有一本包含大量数据的大工作簿 在一张纸上我有一张桌子 该表用于其他工作表中使用的许多数据透视表 这些数据透视表也用于其他工作表中 该表的数据是定期手动复制的 我现在有一个外部连接可以自动导入数据 但我想避免影响其他工作表 如何使用外部连接
  • 在 ruby​​ on Rails 4 中上传图像或文件

    在这里 我想要一个关于在不使用任何 gemfile 例如 peperclip carrierwave 等 的情况下上传文件或图像的清晰概念 之前 我做了一些工作 我可以在 assets images 文件夹中上传图像 但是当我在显示页面中调
  • 转置逗号分隔字段

    我有一个如下所示的数据集 并且正在使用 SAS Enterprise Guide 6 3 data have input id state cards 134 NC NY SC 145 AL NC NY SC run 我有另一个数据集 其中
  • 像 MySQL 一样从 Firebase 检索计数数据

    当尝试从 MySQL 数据库中提取数据时 我可以执行以下操作 SELECT FROM users ORDER BY id WHERE vehicle car 例如 这应该让我获得所有驾驶汽车的用户 而不是显示驾驶摩托车的用户 Firebas
  • 表单:避免将非提交字段设置为 null

    我有一个简单的模型 源简化 class Collection public page public limit 以及表单类型 class CollectionType extends AbstractType public function
  • 调用类指针上的方法[重复]

    这个问题在这里已经有答案了 并不是说我有问题 而是我发现以下事实很奇怪 Class Shape class Shape protected int width height public Shape int a 0 int b 0 widt
  • C# Begin/EndReceive - 如何读取大数据?

    当以 1024 字节为单位读取数据时 如何继续从接收大于 1024 字节的消息的套接字读取数据 直到没有剩余数据为止 我是否应该仅使用 BeginReceive 来读取数据包的长度前缀 然后在检索到该前缀后 使用 Receive 在异步线程
  • RxJS v5 中的速率限制和计数限制事件,但也允许传递

    我有很多事件要发送到服务 但请求有速率限制 每个请求都有计数限制 每秒 1 个请求 bufferTime 1000 每个请求 100 个活动项目 bufferCount 100 问题是 我不确定如何以有意义的方式将它们组合起来 允许通过 让
  • 在 wine (linux) 下运行的 Windows 应用程序的屏幕截图

    正如标题所说 我想截取wine下运行的窗口应用程序的屏幕截图 不是整个桌面 C 是首选 但也可以使用 java 或 Pascal 提前致谢 使用 imagemagick 的导入命令抓取窗口并将其转储到文件中 进口文件 http www im
  • 远程过程调用认证

    我正在使用远程过程调用 RPC 在本地计算机上通信数据 我的要求是使用 RPC 在两个处理之间通信数据 但服务器应该通过某种方式对客户端进行身份验证 我遇到了 RpcBindingSetAuthInfo 它设置身份验证和授权信息 第四个参数
  • 如何获取类属性的名称?

    无论如何我可以获得类属性的名称IntProperty public class ClassName public static int IntProperty get return 0 something like below but I
  • 在Python中按多个值对列表列表进行排序

    我需要对列表列表进行排序 其中每个列表entry外部列表是一个由三个整数组成的列表 如下所示 3 1 0 1 2 3 3 2 0 3 1 1 诀窍是我需要对其进行排序entry 0 如果有平局 则按以下顺序对它们进行排序entry 1 如果
  • OSX - 始终隐藏某些文件

    我知道如何在终端中显示和隐藏隐藏文件 但是有没有办法在显示隐藏文件时隐藏某些文件 例如 DS STORE 可以这么说 使某些文件超级隐藏吗 Use chflags与隐藏选项 ie chflags hidden fileToHide从 Fin
  • XMI 2.1.1 的 XSD

    我必须使用 JAXB 解析 XMI 文件 xmi 版本 2 1 1 为此 我必须生成与 XMI 文件相对应的 Java 类 因此 我需要 xmi 文件的 shema 定义才能使用 jxc 工具执行此操作 我希望有人知道在哪里可以找到这个文件
  • `AVCaptureVideoDataOutput` 消耗的内存是 `AVCaptureMovieFileOutput` 的三倍

    Issue 我正在使用 AVFoundation 来实现一个相机 它能够在运行特殊的人工智能处理时录制视频 拥有一个AVCaptureMovieFileOutput 用于视频录制 and a AVCaptureVideoDataOutput
  • 当由不同模块导入时,如何访问 Python 2.7 中的相对路径

    目标 使用从各种 python 模块调用的通用实用程序函数时访问 写入相同的临时文件 背景 我正在使用 python Unittest 模块来运行一组自定义测试 这些测试通过 pySerial 与仪器接口 因为我使用的是unittest模块