-1

そのようなpythonファイルがあると仮定します

#python
#comment
x = raw_input()
exec(x)

exec のコメントを含むファイル全体のソースを取得するにはどうすればよいでしょうか?

4

3 に答える 3

2

これはまさにinspectモジュールの目的です。特に、ソース コードの取得セクションを参照してください。

現在実行中のモジュールのソースを取得しようとしている場合:

thismodule = sys.modules[__name__]
inspect.getsource(thismodule)
于 2013-05-07T20:34:04.613 に答える
0

これを何に使用する予定かはわかりませんが、コマンド ライン スクリプトを維持するために必要な作業を減らすためにこれを使用しています。私は常に open( _ file _ ,'r')を使用しました

'''
Head comments ...
'''
.
.
. 
def getheadcomments():
    """
    This function will make a string from the text between the first and 
    second ''' encountered. Its purpose is to make maintenance of the comments
    easier by only requiring one change for the main comments. 
    """
    desc_list = []
    start_and_break = "'''"
    read_line_bool = False
    #Get self name and read self line by line. 
    for line in open(__file__,'r'):
        if read_line_bool:
            if not start_and_break in line:
                desc_list.append(line)
            else:
                break    
        if (start_and_break in line) and read_line_bool == False:
            read_line_bool = True
    return ''.join(desc_list)
.
.
.
parser = argparse.ArgumentParser(description=getheadcomments())  

このようにして、 --help オプションを使用してコマンドラインからプログラムを実行すると、プログラムの上部にあるコメントが出力されます。

于 2013-05-07T20:36:40.597 に答える