我換了種做法,
每種查詢類命令比如 ps/ss, 查詢后, 一般都是做grep 操作
我們限制用戶執(zhí)行的命令種類, 比如 ps/ss, 用戶post時, 選擇執(zhí)行的命令類型,
并只能添加過濾關鍵字, 格式類似于
<cmd> key1 key2 key3
依次校驗 key1..., 限制key只能是單詞或包含有限的特殊字符, 拼接執(zhí)行時不會對系統(tǒng)產(chǎn)生影響的,
這類校驗就比較簡單了, 一個正則就可以確定,
如下
word_re = re.compile(r'([a-zA-Z0-9\.]+)')
greps = []
for key in keys:
matches = word_re.findall(key)
# key 包含特殊字符
if len(matches) == 0 or len(matches) > 1 or matches[0] != key:
return send_msg(from_user, f'進程關鍵字包含特殊字符: {key}')
greps.append(f'grep -i {key}')
cmd = f'ps -ef | {"|".join(greps)}'
在拼接命令后, 最終的執(zhí)行格式如下
ps -ef | grep key1 | grep key2 | grep key3
這樣就達到了在用戶post關鍵字后校驗命令僅會查詢, 不會對系統(tǒng)產(chǎn)生影響
這個應該是類型注釋,其中:注釋,=[]是初始值
var: annotation = value
some_list: List[int] = [] # variable with initial value
https://www.python.org/dev/pe...
https://www.python.org/dev/pe...
看看這個是否有幫助?
https://cuiqingcai.com/5571.html
>>> import re
>>> s='''
1
2
3
1
2
3
4
1
2
3
4
5
1
'''
>>> re.findall(r'1[^1]*',s)
['1\n2\n3\n', '1\n2\n3\n4\n', '1\n2\n3\n4\n5\n', '1\n']
#或者
>>> re.findall(r'(1\n)([^1]*)',s)
[('1\n', '2\n3\n'), ('1\n', '2\n3\n4\n'), ('1\n', '2\n3\n4\n5\n'), ('1\n', '')]首先,確定一下你的這個代碼,app = Flask(__name__, template_folder="templates"),也就是你的 template_folder 設置情況,然后直接從相關的 template_folder 目錄下開始寫你的頁面的路徑。
比如:假設你的 template_folder 路徑為當前路徑,和 index.html.bak 的路徑一致,那么你在 demo.html 的例子中,就直接輸入 {% include "navi.html" %}。
個人理解: jinja2 不支持 ., ..這樣的當前目錄和上級目錄操作。
不知道為啥換了一個host就好了,雖然換host,但是還是不知道為啥
不知道你想要的是啥結果
>>> '204'.encode()
b'204'
>>> chr(204)
'ì'
>>> chr(204).encode()
b'\xc3\x8c'
>>> bytes([204])
b'\xcc'matlab的數(shù)據(jù)是以矩陣為主的,比較方便用表格的形式呈現(xiàn)。Python的數(shù)據(jù)格式五花八門,不是每一種有很適合的表現(xiàn)形式,所以有時候只是print一些關鍵信息。
可以考慮使用jupoter notebook,一些數(shù)據(jù)格式(例如pandas的dataframe)會有比較好的輸出形式。
python的ide推薦你用pycharm或者sublime text,
你現(xiàn)在出現(xiàn)這種情況應該是因為環(huán)境沒有配置好,一般搞python的人不太會使用vscode來做為ide
轉義符不是反斜杠"\"嗎?
代碼:
def aa2bb(aa):
bb = []
proj_id_map = {}
for ad in aa:
proj_id = ad['projectname_id']
child = {'id': ad['id'], 'text': ad['ip']}
if proj_id not in proj_id_map:
bd = {
'projectname__pname': ad['projectname__pname'],
'projectname_id': ad['projectname_id'],
'children': [child]
}
bb.append(bd)
proj_id_map[proj_id] = bd
else:
bd = proj_id_map[proj_id]
bd['children'].append(child)
return bb
測試:
from pprint import pprint
aa = [
{'ip': '192.168.1.1', 'projectname__pname': 'hh', 'id': 1, 'projectname_id': 1},
{'ip': '192.168.3.2', 'projectname__pname': 'hh', 'id': 2, 'projectname_id': 1},
{'ip': '192.168.22.3', 'projectname__pname': 'qm', 'id': 3, 'projectname_id': 2},
{'ip': '192.168.5.3', 'projectname__pname': 'ssh', 'id':4, 'projectname_id': 3}
]
pprint(aa2bb(aa))
結果:
[{'children': [{'id': 1, 'text': '192.168.1.1'},
{'id': 2, 'text': '192.168.3.2'}],
'projectname__pname': 'hh',
'projectname_id': 1},
{'children': [{'id': 3, 'text': '192.168.22.3'}],
'projectname__pname': 'qm',
'projectname_id': 2},
{'children': [{'id': 4, 'text': '192.168.5.3'}],
'projectname__pname': 'ssh',
'projectname_id': 3}]
我回答過的問題: Python-QA
http://python.usyiyi.cn/trans...
numpy入門看看這個就行,很好理解
因為你要替換雙引號,但是正則里面寫的單引號,
另外,問號需要轉義
難道是python新手么?
sss = re.sub('<\?xml version="1.0" encoding="UTF-8"\?>',"",html)
因為lambda匿名函數(shù)(或稱閉包)傳遞的是num的地址,最后你的num的值都是9,參考https://www.liaoxuefeng.com/w...
解決方法改用偏函數(shù)
from functools import partial
btn_num.clicked.connect(partial(self.showMessage, num)) # 實時傳遞數(shù)值
這種問題,把代碼簡化了說明比較好。
參數(shù)是變的,根本也就不存在“初始化多次”的問題,因為本身就是需要多個狀態(tài)的。
# -*- coding: utf-8 -*-
class A(object):
def __init__(self, i):
print i
for i in range(10):
A(i)
如上代碼,如果本身需要那個變化的 i ,那么不同的 i 創(chuàng)建不同的 A 的實例是沒有問題。(不是唯一的處理方式)
殊途同歸~ 確切的說:這倆達到的效果是相同的。
容我猜測一下,我猜這是個人風格的問題(不過,每個人隨著時間的推移,風格也會變的)。不信你看~
還有一種情況,就是 當你只需要對某個值獲取的時候進行處理的時候,注解的方式是比較簡便快捷的~
python2 的編碼問題確實很令人頭疼.
對于你遇到的情況, 首先應該把 unicode 類型轉換成 utf-8 格式進行展示.
# coding: utf-8
test=[[u'測試',u'學習'],[u'提問',u'回答']]
# 換成 utf-8 的字節(jié)碼
tester = [[y.encode('utf-8') for y in x] for x in test]
# print 展示
print(repr(tester).decode('string-escape'))
使用 python3 吧, 這些類似的編碼問題基本不會出現(xiàn)的.
__all__, 它用來將模塊全部導入。
設置__all__ = ['os', 'sys', 're', 'urllib']
這時就會把注冊在__init__.py文件中__all__列表中的模塊和包導入到當前文件中來。
用 chrome extension 當然可以實現(xiàn)自動化,但是路途漫長。即便做出來了,不見得比 chrome driver 更方便,除非你做的 extension 與 driver 不一樣(我指的是動作效果)。
我覺得問題的關鍵是找出網(wǎng)站的檢測點,在現(xiàn)有的框架下(chrome driver)解決,在確定框架不能滿足需求時,再考慮 extension。
var formData = new FormData();
formData.append("feild", $("#feild").val());
formData ---> https://developer.mozilla.org...
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構,是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產(chǎn)業(yè)為響應國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復興的升級產(chǎn)業(yè)鏈。利用北京大學優(yōu)質教育資源及背
博為峰,中國職業(yè)人才培訓領域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務負責iOS教學及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術, 熟練的跨平臺面向對象開發(fā)經(jīng)驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術顧問,美國Dachieve 系統(tǒng)架構師,美國AngelEngineers Inc. 系統(tǒng)架構師。