簡體   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