Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中是否有类似于';其中';和';打开';在matlab中?_Python_Matlab_Python 2.7 - Fatal编程技术网

Python中是否有类似于';其中';和';打开';在matlab中?

Python中是否有类似于';其中';和';打开';在matlab中?,python,matlab,python-2.7,Python,Matlab,Python 2.7,在matlab中,通过“which XX.m”很容易找到“.m”文件的路径,也可以通过“open XXX.m”方便地查看代码 在Python中,是否有类似的命令?如果您已经导入了模块(或者可以在不造成任何损害的情况下导入),那么模块可能就是您想要的。例如,getsourcefile将为您提供加载模块的文件的路径,而getsource将为您提供源代码 当然,这些并不总是有效的,因为有些Python模块可以是用C编写的扩展模块,或者缓存的.pyc文件,这些文件安装时没有.py文件,或者捆绑在.zip

在matlab中,通过“which XX.m”很容易找到“.m”文件的路径,也可以通过“open XXX.m”方便地查看代码


在Python中,是否有类似的命令?

如果您已经导入了模块(或者可以在不造成任何损害的情况下导入),那么模块可能就是您想要的。例如,
getsourcefile
将为您提供加载模块的文件的路径,而
getsource
将为您提供源代码

当然,这些并不总是有效的,因为有些Python模块可以是用C编写的扩展模块,或者缓存的
.pyc
文件,这些文件安装时没有
.py
文件,或者捆绑在
.zip
文件而不是平面目录中,或者任何其他您可以想到并编写加载程序的文件……但是在这些情况下,什么都不行;当一些合理的方法可行时,
inspect
将起作用

没有什么比
open
函数更好的了,因为Matlab是一个GUI环境,而Python只是一种语言,可以在各种不同的GUI中运行,或者根本不运行,但是一旦您知道了路径,大概您就可以知道如何在IDE会话或最喜欢的文本编辑器中打开它



如果您不能实际导入模块(可能您询问的原因是,
import XX
失败,并且您希望找到解决问题的代码……),但想知道将导入哪个模块,那么在Python 2.7中这并不像在3.4中那么容易,但该模块通常足够好,
imp.find\u模块('XX')
通常会满足您的需求(只要您注意文档中关于包的解释)。

您可以使用help()确定文件系统上的模块位置。您正在寻找的是什么?inspect.getsourcefile()works.Thx。我正在使用IDE spyder。有一个命令“edit XXX”可以在编辑器中打开源文件,但只能处理当前文件夹中的.py文件。@Lee:我对spyder一无所知,但如果它有办法按路径名打开文件,或者如果它足够好,只需手动操作,希望这个答案就足够了。我找到了它。在spyder中打开(inspect.getsourcefile())。谢谢@abarnert