簡體   English   中英

在Linux命令行上使用python(未運行)編譯字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM