您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

5b51 2022/1/14 8:21:22 python 字数 3849 阅读 490 来源 www.jb51.cc/python

目标:使用从各种python模块调用的公共实用程序函数时,访问/写入相同的临时文件.背景:我正在使用python Unittest模块来运行一组自定义测试,这些测试通过pySerial与仪器连接.因为我使用的是unittest模块,所以我无法将所需的变量(例如要使用的串口)传递到unittest的测试用例中.为了解决这个问题,我想创建一个存储和返回pickl

概述

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

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

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

我在问题:Python – how to refer to relative paths of resources when working with code repository,我以为我在第一个答案中找到了解决方案.令我沮丧的是,这在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
""""

总结

以上是编程之家为你收集整理的如何在不同模块导入时访问Python 2.7中的相对路径全部内容,希望文章能够帮你解决如何在不同模块导入时访问Python 2.7中的相对路径所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶