def AES_encrypt(text, key, iv):
pad = 16 - len(text) % 16
text = text + pad * chr(pad)
encryptor = AES.new(key, AES.MODE_CBC, iv)
encrypt_text = encryptor.encrypt(text)
encrypt_text = base64.b64encode(encrypt_text)
***encrypt_text = str(encrypt_text, encoding="utf-8")***
return encrypt_text可以直接獲得
In [1]: print.__class__
Out[1]: builtin_function_or_method看你的保存內(nèi)容應該是使用類似BaseHTTPServer這種python自帶的類完成的上傳服務器。
https://github.com/smilejay/p...
如果是這樣的話,那些http流的相關信息是沒有什么好的辦法的,只能自己通過類似readline的方式,一行一行的讀取,并且手動去除http相關信息。
所幸這些都是http信息都是有相關標準的,例如 1-4 行為http信息, 5-(-2)行為上傳信息,最后一行為http信息(這只是隨便舉得一個例子)
所以想要通過這種方式來完成上傳文件的話,需要自己去研究下rfc標準:
http://www.ietf.org/rfc/rfc1867
http://www.vivtek.com/rfc1867...
但是看你標簽上是有django的,所以應該會更簡單省事些的方式,就是使用django的request.FILES了。
參考地址:
https://docs.djangoproject.co...
示例:
# 獲取文件名
request.FILES['filename'].name
# 獲取全部文件
for filename, file in request.FILES.iteritems():
name = request.FILES[filename].name
# 文件內(nèi)容(這個不確定,請自行查看文檔)
file.readall()寫一個循環(huán)也不是不可以,但是有更巧妙的方法。
先仔細觀察一下可以發(fā)現(xiàn)你想把原數(shù)據(jù)表的行變成列,列變成行??梢钥紤]矩陣轉(zhuǎn)置
轉(zhuǎn)置就是行變成列,列變成行,比如這樣:左邊的第一行5 4 3變成了右邊的第一列
import numpy as np
data = [['樂視網(wǎng)', '樂視網(wǎng)', '樂視網(wǎng)', '樂視網(wǎng)', '樂視網(wǎng)', '樂視網(wǎng)', '樂視網(wǎng)', '樂視網(wǎng)', '樂視網(wǎng)', '樂視網(wǎng)', '樂視網(wǎng)',
...
'14.77', '7.20', '7.02', '7.19', '7.95', '13.58', '22.40', '2.22', '0.05', '0.05', '0.03', '0.03', '0.03', '0.03', '0.02', '0.03', '0.02', '0.07']]
# 轉(zhuǎn)為ndarray以方便矩陣操作
data = np.array(data)
# 轉(zhuǎn)置并打印前五個看一下
data_trans = data.T
print(data_trans[:5])
也可以用map和zip來進行轉(zhuǎn)置,這樣就不用引入numpy包。
data = [....你的那些數(shù)據(jù)...]
list(map(list, zip(*data)))
輸出效果
[['樂視網(wǎng)' '300104' '2018-03-30' '4.79' '4.87' '4.72' '4.76' '-0.02' '-0.42'
'1,585,272' '75,812' '3.14' '4.02']
['樂視網(wǎng)' '300104' '2018-03-29' '5.11' '5.11' '4.70' '4.78' '-0.34' '-6.64'
'2,889,496' '139,091' '8.01' '7.33']
['樂視網(wǎng)' '300104' '2018-03-28' '5.10' '5.34' '5.01' '5.12' '0.04' '0.79'
'2,929,088' '151,161' '6.50' '7.43']
['樂視網(wǎng)' '300104' '2018-03-23' '5.40' '5.48' '4.99' '5.08' '-0.46' '-8.30'
'2,663,670' '138,534' '8.84' '6.76']
['樂視網(wǎng)' '300104' '2018-03-22' '5.57' '5.73' '5.36' '5.54' '0.01' '0.18'
'2,185,353' '121,514' '6.69' '5.54']]瀏覽器確實有允許使用麥克風的api,但是,瀏覽器兼容性并不好。而且,目前好像還快不支持了
參見:https://developer.mozilla.org...
如果在微信內(nèi)打開的話,有支持錄音的微信jssdk可以幫你。
音頻播放就不用說了。
然后直播肯定是實時的,估計你需要用到websocket,一方錄制完,另一方服務器主動推送,類似小聊天室。
題主的真正需求:給任務1設置個 超時,超過一定時間,就放棄執(zhí)行。轉(zhuǎn)而執(zhí)行任務 2。
所以可以考慮對任務 1 使用 asyncio.wait_for 包裹一下。
舉個?:
import asyncio
async def task1():
print('task1 begin')
await asyncio.sleep(3)
print('task1 finish') # will never finish
async def task2():
try:
await asyncio.wait_for(task1(), timeout=2)
except asyncio.TimeoutError:
print('task1 timeout')
print('task2 begin')
# do something
print('task2 finished')
loop = asyncio.get_event_loop()
loop.run_until_complete(task2())
loop.close()
另外,題主的題目可以修改一下,因為你只是想要中止一個 task 或者說一個 coroutine,并非中止 eventloop。
換了個瀏覽器,從Firefox換成了Chrome,第一個問題解決了。
查找網(wǎng)頁元素的同時點擊,第二個問題也解決了。
你域名解析的是 www ,你的cname 中應該是 www.mynotes.work
所有的.* 換成 [.\S\s]* 匹配完 str.strip()
r'<td>([.\S\s]*)</td>'exit() {
that.$Modal.confirm({
title: '退出登錄',
content: '是否確認退出當前登錄賬號',
onOk:()=> {
console.log(this);
}
})
}錯誤信息中顯示 127.0.0.1:27017已經(jīng)被占用了,之所以會出現(xiàn)這種現(xiàn)象,我猜是不是因為重復conncet mongodb導致的,建議:一種是把所有邏輯都放到connect大回調(diào)里,另外一種是使用連接池
個人經(jīng)驗.
盡量把結果保存在內(nèi)存中,減少寫入文件的次數(shù).
1次寫入10000行和寫入10000次1行的時間,差別很大.
這個問題很大可能是路徑問題。從你截圖的路徑來看的話,用url_for('static',filename='themes/css/style.css') 與 url(../fonts/fontawesome-webfont.eot-v=4.1.0) ,這樣應該不會有錯。你可以看看,這樣用之后,用chrome檢查network中,fontawesome-webfont.eot-v=4.1.0的完整鏈接是什么,應該能夠找到問題的原因。
好像遇到過這個問題,你配置'HOST': '127.0.0.1'時候django會通過localhost訪問數(shù)據(jù)庫而不是ip地址127.0.0.1。
但是你的數(shù)據(jù)庫沒有配置root用戶通過localhost域名訪問的權限
mysql> use mysql;
mysql> update user set host = 'localhost' where user = 'root'; -- 允許通過localhost域名訪問
mysql> update user set host = '%' where user = 'root'; -- 允許通過任意域名訪問,和上一條任選一個
mysql> select host, user from user;
mysql> flush privileges;
或者
你的Python版本沒有自帶pip,使用命令安裝即可sudo apt-get install python-pip
用threading.Lock鎖實現(xiàn)線程同步。
另外遍歷一個數(shù)組請用for item of arr:遍歷,不要用for i in range(len(arr)):
請嘗試卸載并重新安裝 cryptography、openssl 。
你這個問題是 有下面這條語句
這條語句的作用是從cmd 或linux 命令行讀取參數(shù)。
它的運行方式是:
python 代碼的名字 參數(shù)1 參數(shù)2 ....
實現(xiàn)了,要在里面二次拼接,實現(xiàn)代碼如下:
//TAT
var rounds = document.querySelector('div.round');
var _watchHtml = '';
this._valueDatas.forEach(function (value,index,array) {
value = eval('('+ value +')');
console.log(value)
var maxTat = value.c3text; //總值 100
var fwcTat = value.c4text; //警報值 60
var difTat = (maxTat - fwcTat); //安全值 100-60 = 40
var colors = difTat/100;
var _valueLengths = value.c3text.length;
_watchHtml += '<div class="watchBox"><div class="watch w'+index+'"></div></div>'
var wat=document.createElement('div');
wat.setAttribute('class','watchBox');
wat.innerHTML='<div class="watch w'+index+'"></div>';
// rounds.innerHTML = _watchHtml;
rounds.appendChild(wat)
//儀表盤配置參數(shù)
var watch = echarts.init(document.querySelector('.w'+index));
})
幫你測了一下,應該是找不到提交按鈕導致的。
你暫時使用回車來解決這個問題吧,原因我也沒搞明白。
...
from selenium.webdriver.common.keys import Keys
def search():
...
# sub = ...
input.send_keys(u'金融書籍')
input.send_keys(Keys.ENTER)
# sub.click()
...
補充:記得最后把driver關掉。
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構,是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產(chǎn)業(yè)為響應國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復興的升級產(chǎn)業(yè)鏈。利用北京大學優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓領域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務負責iOS教學及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術, 熟練的跨平臺面向?qū)ο箝_發(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)架構師。