簡體   English   中英

在Python Web中執行代碼

[英]Executing Code in Python Web

即時通訊創建的網頁將向我顯示網絡中可用的SSID

為此,我使用以下代碼:

nm-tool | grep“ Infra” | 剪切-d“” -f5> /home/nunukene/SSID3.txt

我將其保存到名為SSID3的文件中,以便稍后使用open(),read()和str.split打開它

我的問題是我要在頁面中執行的代碼不會被執行,不會創建文件SSID3.txt

到目前為止,這是我的網站代碼:

#!/usr/bin/python
import os
import subprocess
import cgitb

cgitb.enable()

a=os.system("""nm-tool | grep "Infra"  | cut -d " " -f5 > /home/nunukene/SSID3.txt""")

#SSIDStr = subprocess.check_output('nm-tool | grep "Infra" | cut -d " " -f5-6', shell=True)
#SSIDArray = str.split(SSIDStr)


ID = subprocess.check_output('ls', shell=True)
a='devilman'
print "Content-type:text/html\r\n\r\n"

print "<!DOCTYPE html>"
print "<html>"
print "<title> Not Hacking lol</title>"
print "<body>"
print "<h1> Join %s One of this networks <h1>" %(a)
print "</body>"
print "</html>" 

我不知道如何在剩下的時間里使這個過程正常進行!

  • 我強烈建議使用日志記錄模塊來幫助您診斷問題出在哪里。
  • 您的子流程調用無效的原因是您需要從命令的所有參數中列出一個清單。

    SSIDStr = subprocess.check_output(['nm-tool','|','grep','“ Infra”','|','cut','-d','“”,'-f5'] )

    (我不確定您是否必須轉義此字符串中的雙引號)

  • 通過這種方式使用子進程調用可以避免使用文本文件,並且Web服務器用戶可能正在寫入文件是權限問題。
  • 您正在重新編寫“ a”變量,並且未在輸出中使用文本文件。
  • 我希望cgitb.enable()行不是問題。 沒見過。 您是否考慮過使用Flask?
  • 如果您使用的是python 3,則print語句需要是函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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