Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.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 运行脚本。@SaladHead通过尝试解析文件的内容来完成,这可能在大多数情况下(如果不是所有情况下)都有效-就个人而言,我对用正则表达式解析脚本有点怀疑。就执行代码而言,大多数模块在导入时不会打印内容(原因很明显)。问题是软件开发人员无法控制脚本的编写,_Python_Python 3.8_Docstring_Python Ast - Fatal编程技术网

Python 运行脚本。@SaladHead通过尝试解析文件的内容来完成,这可能在大多数情况下(如果不是所有情况下)都有效-就个人而言,我对用正则表达式解析脚本有点怀疑。就执行代码而言,大多数模块在导入时不会打印内容(原因很明显)。问题是软件开发人员无法控制脚本的编写,

Python 运行脚本。@SaladHead通过尝试解析文件的内容来完成,这可能在大多数情况下(如果不是所有情况下)都有效-就个人而言,我对用正则表达式解析脚本有点怀疑。就执行代码而言,大多数模块在导入时不会打印内容(原因很明显)。问题是软件开发人员无法控制脚本的编写,,python,python-3.8,docstring,python-ast,Python,Python 3.8,Docstring,Python Ast,运行脚本。@SaladHead通过尝试解析文件的内容来完成,这可能在大多数情况下(如果不是所有情况下)都有效-就个人而言,我对用正则表达式解析脚本有点怀疑。就执行代码而言,大多数模块在导入时不会打印内容(原因很明显)。问题是软件开发人员无法控制脚本的编写,因此维护一致性是我们无法控制的。使解析文件变得困难。原始问题已在使用ast.parse/ast.get\u docstring。。。而且O.P.从未解释过这种方法的错误。@win:很好的观点…没有关于原因的线索。我必须研究一下是否有一种方法可以


运行脚本。@SaladHead通过尝试解析文件的内容来完成,这可能在大多数情况下(如果不是所有情况下)都有效-就个人而言,我对用正则表达式解析脚本有点怀疑。就执行代码而言,大多数模块在导入时不会打印内容(原因很明显)。问题是软件开发人员无法控制脚本的编写,因此维护一致性是我们无法控制的。使解析文件变得困难。原始问题已在使用
ast.parse
/
ast.get\u docstring
。。。而且O.P.从未解释过这种方法的错误。@win:很好的观点…没有关于原因的线索。我必须研究一下是否有一种方法可以在不执行代码的情况下做到这一点。或者重新想象GUI,在用户选择运行脚本后打开另一个仅显示docstring的窗口。@SaladHead通过尝试解析文件内容来完成此操作,这可能在大多数情况下(如果不是所有情况下)都有效-就我个人而言,我对用正则表达式解析脚本有点怀疑。就执行代码而言,大多数模块在导入时不会打印内容(原因很明显)。问题是软件开发人员无法控制脚本的编写,因此维护一致性是我们无法控制的。使解析文件变得困难。原始问题已在使用
ast.parse
/
ast.get\u docstring
。。。而O.P.从未解释过这种方法的错误之处。@win:很好的观点……不知道为什么。
"""this is a docstring"""
print('hello world')
# index is test.py
def on_selected(self, index):
    script_path = self.tree_view_model.filePath(index)
    fparse = ast.parse(''.join(open(script_path)))
    self.textBrowser_description.setPlainText(ast.get_docstring(fparse))
""" this is a multiline
    docstring.
"""
print('hello world')
import importlib.util

def get_docstring(script_name, script_path):
    spec = importlib.util.spec_from_file_location(script_name, script_path)
    foo = importlib.util.module_from_spec(spec)
    spec.loader.exec_module(foo)
    return foo.__doc__

if __name__ == '__main__':

    print(get_docstring('docstring_test', "./docstring_test.py"))
hello world
 this is a multiline
    docstring.
import ast

def get_docstring(script_path):
    with open(script_path, 'r') as file:
        tree = ast.parse(file.read())
        return ast.get_docstring(tree, clean=False)

if __name__ == '__main__':

    print(repr(get_docstring('./docstring_test.py')))
' this is a multiline\n    docstring.\n'