繁体   English   中英

如何在另一个 python 文件中运行 Python 文件?

[英]How to run Python file in another python file?

我试图在此词法分析器中运行另一个 python 文件,但它不工作。 谁能帮我?

我正在使用这段代码: https://github.com/huzaifamaw/Lexical_Analyzer-Parser_Implemented-in-Python/blob/master/main.py

它说我可以通过更改 blankvar 输入我自己的文件,这是我写的:

filecheck = print("INPUT FILE:\n", hello.py)

运行一个名为 hello.py 的文件——计算其中的词位。

谁能帮我? 将不胜感激:)

你不能在以下地方使用hello.py

filecheck = print("INPUT FILE:\n", hello.py)

如果你想修改现有的程序,你有多种选择。 最简单的方法是将此line中的blank_var设置为您的程序文本。

这就是我所做的并得到以下 output:

blank_var = "import json\n\ndef foo(): pass\n\ndef bar(n):\n    print(n)\n"

给这个 output(不确定ERROR IN START消息)

INPUT FILE:
 import json

def foo(): pass

def bar(n):
    print(n)

{'value': 'import', 'LINE_NUMBERS': 1, 'TYPE': 'IDENTIFIER'}
{'value': 'json', 'LINE_NUMBERS': 1, 'TYPE': 'IDENTIFIER'}
{'value': 'def', 'LINE_NUMBERS': 3, 'TYPE': 'IDENTIFIER'}
{'value': 'foo', 'LINE_NUMBERS': 3, 'TYPE': 'IDENTIFIER'}
{'value': '(', 'LINE_NUMBERS': 3, 'TYPE': 'LL_BRACKET'}
{'value': ')', 'LINE_NUMBERS': 3, 'TYPE': 'RL_BRACKET'}
{'value': ':', 'LINE_NUMBERS': 3, 'TYPE': 'COLON'}
{'value': 'pass', 'LINE_NUMBERS': 3, 'TYPE': 'IDENTIFIER'}
{'value': 'def', 'LINE_NUMBERS': 5, 'TYPE': 'IDENTIFIER'}
{'value': 'bar', 'LINE_NUMBERS': 5, 'TYPE': 'IDENTIFIER'}
{'value': '(', 'LINE_NUMBERS': 5, 'TYPE': 'LL_BRACKET'}
{'value': 'n', 'LINE_NUMBERS': 5, 'TYPE': 'IDENTIFIER'}
{'value': ')', 'LINE_NUMBERS': 5, 'TYPE': 'RL_BRACKET'}
{'value': ':', 'LINE_NUMBERS': 5, 'TYPE': 'COLON'}
{'value': 'print', 'LINE_NUMBERS': 6, 'TYPE': 'IDENTIFIER'}
{'value': '(', 'LINE_NUMBERS': 6, 'TYPE': 'LL_BRACKET'}
{'value': 'n', 'LINE_NUMBERS': 6, 'TYPE': 'IDENTIFIER'}
{'value': ')', 'LINE_NUMBERS': 6, 'TYPE': 'RL_BRACKET'}
{'value': '$', 'LINE_NUMBERS': 7, 'TYPE': 'EOF'}
ERROR IN START

您还有其他选项,例如在 arguments 中传递文件路径或从文件位置读取,但这需要进行一些修改,因为原始程序不容易使用。

例如:

with open("my/file.py", "r") as f:
    blank_var = f.read()

所以我实际上想出了如何让另一个文件运行。

对于和我有同样问题的人,这是我使用的代码:

    file = open("happy.py")
    blank_var= file.read()
    print("INPUT FILE:\n", blank_var)

!!!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM