[英]Compiling a string using python(not running) on linux command line
我正在嘗試為某個項目做某事,但在搜索並嘗試一些不同的代碼后卻找不到答案。
我想做的是從客戶端接收一個字符串(通過郵寄發送,我必須使用此方法,老師的命令),然后在php文件中使用exec()編譯此字符串。 基本上,我是在“分級”作為字符串發送給我的python代碼段。 我也在Andrew文件系統服務器(afs)上執行此操作。
我對python不太熟悉,通常使用其他語言,但是我可以使用php exec來制作python可執行文件,也可以使用cython對其進行編譯(這是我們學校的linux機器所擁有的,不確定是否應該用這個)。 我讓它可以處理文件。
我的問題是我不能不運行就簡單地編譯字符串。 我可以
python -c "print('Hello World')"
僅用於執行字符串,其中“ print('Hello World') ”將是一個php字符串變量
但我不確定如何僅檢查語法錯誤。
我試過python -m py_compile -c "print('Hello World')"
但是它不像py_compile上的-m看起來不喜歡字符串,只喜歡文件
因此,除了基本上為客戶端發送給我的每個字符串創建一個新的.py文件並進行處理之外,還有一種更好的方法而無需創建新文件或創建單獨的python腳本來處理此問題。 我正在嘗試在一個php文件中執行此操作。 這可能是在字符串上執行python命令行腳本的一個大問題,所以我不妨問一問。
您可以使用解析器模塊。 編寫這樣的腳本:
import sys
import parser
data = sys.argv[1]
try:
parser.suite(data)
except SyntaxError as e:
print(e)
像這樣調用
python3.6 /tmp/test.py "import math"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.