我想获取当前文件在数码显微图像中的文件路径python。我该怎么做呢?
我试着用
__file__
但我明白了NameError: Name not found globally.
我尝试将 与以下代码一起使用dm-script GetCurrentScriptSourceFilePath()来获取 python 的值
import DigitalMicrograph as DM
import time
# get the __file__ by executing dm-scripts GetCurrentScriptSourceFilePath()
# function, then save the value in the persistent tags and delete the key
# again
tag = "__python__file__{}".format(round(time.time() * 100))
DM.ExecuteScriptString(
"String __file__;\n" +
"GetCurrentScriptSourceFilePath(__file__);\n" +
"number i = GetPersistentTagGroup().TagGroupCreateNewLabeledTag(\"" + tag + "\");\n" +
"GetPersistentTagGroup().TagGroupSetIndexedTagAsString(i, __file__);\n"
);
_, __file__ = DM.GetPersistentTagGroup().GetTagAsString(tag);
DM.ExecuteScriptString("GetPersistentTagGroup().TagGroupDeleteTagWithLabel(\"" + tag + "\");")
但似乎该GetCurrentScriptSourceFilePath()函数不包含路径(这是有道理的,因为它是从字符串执行的)。
我发现这篇文章推荐
import inspect
src_file_path = inspect.getfile(lambda: None)
但这显然src_file_path是"<string>"错误的。
我试图引发异常,然后使用以下代码获取它的文件名
try:
raise Exception("No error")
except Exception as e:
exc_type, exc_obj, exc_tb = sys.exc_info()
filename = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1]
print("File: ", filename)
但我又一次得到<string>了filename。
我试图从脚本窗口中获取路径,但找不到任何函数来获取它。但是脚本窗口必须知道它的路径在哪里,否则Ctrl+S不能工作。
一些背景
我正在开发用于数码显微照片的模块。我也有测试文件。但是要在测试文件中导入(仍在开发的)模块,我需要相对于测试文件的路径。
稍后模块将安装在某个地方,所以这应该不是问题。但是为了提供一组完整的测试,我希望能够在不必安装(不工作的)模块的情况下执行测试。
沧海一幻觉
四季花海
墨色风雨
相关分类