實(shí)在是看不懂你的問(wèn)題,到底是在問(wèn)什么。
也沒(méi)看明白你的代碼的意圖。
推薦個(gè)url:
http://docs.python-requests.o...
L中不存在鍵==1的項(xiàng)目, g2.nodes()內(nèi)容是啥?
eval('1+2') 結(jié)果:3
eval('{"a":1, "b":2}') 結(jié)果:字符串轉(zhuǎn)字典(json)
......
但是要慎用,不能直接把用戶提交的數(shù)據(jù)直接放eval里,否則,可能后患無(wú)窮。
命令后加了 & ,表示在后臺(tái)運(yùn)行進(jìn)程。要結(jié)束它,你要先找到進(jìn)程的 PID,然后透過(guò)“任務(wù)管理器”或者其他命令工具結(jié)束它。
在這里,python 進(jìn)程監(jiān)聽(tīng)在 TCP 8888 端口,你可以通過(guò)下面的命令找出 python 的進(jìn)程 PID
netstat -n -a -o
它將輸出類(lèi)似于下面的內(nèi)容
Active Connections
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:8888 0.0.0.0:0 LISTENING 10280
TCP 127.0.0.1:9036 0.0.0.0:0 LISTENING 3060
...
可以看到進(jìn)程 10280 正監(jiān)聽(tīng)在 TCP 8888 端口,這時(shí)候只需要打開(kāi)“任務(wù)管理器”結(jié)束進(jìn)程 10280 即可。
或者用 taskkill 命令,如下
taskkill /PID 10280
首頁(yè)的網(wǎng)址是 http://localhost:8888/
我發(fā)現(xiàn)是你沒(méi)有命名文件名的錯(cuò)誤,準(zhǔn)確說(shuō)叫文件類(lèi)型 :
import requests
import urllib
url = 'http://i.qingting.fm/wapi/channels/82400/programs/2041562/pagesize/10'
#顯示進(jìn)度
def callbackfunc(blocknum, blocksize, totalsize):
percent = 100.0 * blocknum * blocksize / totalsize
if percent > 100:
percent = 100
print('下載進(jìn)度' + '%.2f%%'% percent)
html = requests.get(url)
for n in range(len(html.json()['data']['programs'])):
m4aUrl_name = html.json()['data']['programs'][n]['name'].split(':')[1]+'.m4a'
m4aUrl_path = html.json()['data']['programs'][n]['file_path']
m4aUrl_path = 'http://od.qingting.fm/' + m4aUrl_path
# 這樣下載
urllib.request.urlretrieve(m4aUrl_path,m4aUrl_name)
# 或者這樣,這個(gè)可以解決防爬問(wèn)題
# print(m4aUrl_name)
# mp = requests.get(m4aUrl_path)
# with open(m4aUrl_name,'wb') as f:
# f.write(mp.content)
正則寫(xiě)得有問(wèn)題,已經(jīng)卡死了,使用dom解析庫(kù)去操作吧
用selenium的話,如下
browser.save_screenshot(path)最好是把源碼貼過(guò)來(lái).
你這樣解決不了問(wèn)題.
謝謝 @Yujiaao 的提醒,已經(jīng)解決了。是同事把端口調(diào)整了。
MAC的桌面的路徑一般是 ~/Desktop
所以你想保存桌面上面的某個(gè)文件夾abc下就可以open('~/Desktop/abc', 'wb')了
《流暢的Python》中第 80 頁(yè),也就是第三章的 3.9.3 小節(jié)內(nèi)容 —— 《dict 的實(shí)現(xiàn)及其導(dǎo)致的結(jié)果》中明確提到:
{k:[].append(v) for k, v in [('a', 1), ('b', 2), ('a', 3)]}
這主要由于 dict 的實(shí)現(xiàn)方式確定的,建議有空看看“散列沖突”的問(wèn)題。
csrf token 只能由服務(wù)器端返回,通過(guò)csrf 白名單吧
你要做的是用jstack查看線程狀態(tài),并且結(jié)合當(dāng)時(shí)的io與cpu情況做進(jìn)一步的分析。
在函數(shù)體(def top():)中再定義函數(shù) def xxx 會(huì)不會(huì)產(chǎn)生一個(gè) function 實(shí)例?答案是會(huì)。從翻譯成opcode的結(jié)果來(lái)看,函數(shù)體中會(huì)執(zhí)行 MAKE_FUNCITON 指令,這個(gè)指定是會(huì)申請(qǐng)一個(gè)內(nèi)存空間,并設(shè)置其運(yùn)行的堆棧信息和變量空間等,也就是相當(dāng)于 new 了一個(gè)實(shí)例。每次調(diào)用 top() 函數(shù),因?yàn)樵摵瘮?shù)里定義了 def xxx ,所以依然會(huì)執(zhí)行 MAKE_FUNCITON 指令,也就是說(shuō),每次調(diào)用了 top ,里面的 xxx = new Funciton(),都會(huì)是不同的函數(shù)對(duì)象。
題主中提到的 __get__() 是特殊的內(nèi)置方法,如果你 print(type(top.__get__)) 就能看到它并不是函數(shù)的實(shí)例,而是 <class 'method-wrapper'> 。想在函數(shù)內(nèi)定義 __get__() 方法來(lái)覆蓋應(yīng)該是行不通的,也就不存在發(fā)生遞歸定義的問(wèn)題了。
這問(wèn)題感覺(jué)問(wèn)得挺好的,怎么都沒(méi)什么人來(lái)討論一下呢。
我在 stack overflow 找到了前人問(wèn)題程答案:
https://stackoverflow.com/que...
"When an 'r' or 'R' prefix is present, a character following a backslash is included in the string without change, and all backslashes are left in the string. ......."
上面錯(cuò)誤已刪
已作修改:
所以我想,可能因?yàn)樵趓''中,反斜杠后面的 ' 被當(dāng)作字符保留了而且是一般字符,因而是失去了功能。
又或者是因?yàn)椋鐁"abc" , 先生成"abc" 字符串,然後才加上r再處理, 如果r"反斜杠"就出現(xiàn)生成字符串失敗。
Doc. Python 里面建意r"反斜杠""
抱歉,反斜杠不見(jiàn)了,希望你
https://docs.python.org/2.0/r...
Doc.python 有陳述
不加括號(hào)的,或者加括號(hào)未繼承其他類(lèi)的是經(jīng)典類(lèi)(舊式類(lèi)) ,加括號(hào)繼承其他類(lèi)或者Object的是新式類(lèi)
python3中都是新式類(lèi)
sqlalchemy把所有內(nèi)容查詢出來(lái)后,顯示明細(xì),確實(shí)是還需要從數(shù)據(jù)庫(kù)中一條一條的查詢出來(lái)。
只不過(guò)這個(gè)查詢不是從物理db中查詢,而是從虛擬內(nèi)存db中查詢。
(注:以下說(shuō)法均為個(gè)人從日常實(shí)踐及對(duì)sqlalchemy的理解中得出的,官方具體怎么樣沒(méi)有實(shí)際佐證)
create_engine時(shí)會(huì)調(diào)用create_all()方法,這時(shí)將會(huì)在內(nèi)存中創(chuàng)建一個(gè)虛擬數(shù)據(jù)庫(kù)表。
查詢操作會(huì)將數(shù)據(jù)庫(kù)中的數(shù)據(jù)加載至內(nèi)存,調(diào)用明細(xì)時(shí)會(huì)對(duì)內(nèi)存中的表進(jìn)行查詢操作。
# 1. 類(lèi)似于下面的這種操作是不會(huì)觸發(fā)物理db的相關(guān)操作的,只是生成一段用于在物理db中執(zhí)行的sql
query_str = Model.query.filter(...).order_by(...).with_entities(...)
# 2. query_str執(zhí)行g(shù)et()、all()、first()、one_or_none()等操作時(shí),才會(huì)在鏈接物理db并執(zhí)行操作。
# 3. sqlalchemy會(huì)將返回結(jié)果保存至內(nèi)存中,最為緩存,供用戶查詢相關(guān)明細(xì)。
# 4. 至于查詢明細(xì)的方式,本質(zhì)上估計(jì)類(lèi)似于dict.get(key)這種,具體的要看sqlalchemy以什么數(shù)據(jù)結(jié)構(gòu)
# 在內(nèi)存中保存查詢信息了,個(gè)人未關(guān)注過(guò)
# 5. db.commit()操作會(huì)觸發(fā)類(lèi)似flush()的操作,這時(shí)會(huì)將緩存中的信息清空。例:
# 會(huì)在物理db中執(zhí)行select * from model where id = 1;
result = Model.query.get(1)
# 內(nèi)存中去查詢name,不會(huì)涉及到物理db
print result.name
# 內(nèi)存清空
db.commit()
# 兩步操作,①select * from model where id = 1;②從內(nèi)存中去拿name
print result.name
# 注:for循環(huán)等遍歷操作會(huì)默認(rèn)觸發(fā)all()方法,例:# 生成sql,select * from model;但未與物理db有相關(guān)交互。query = Model.query# 等價(jià)于 for res in query.all(),在物理db中執(zhí)行相關(guān)sqlfor res in query: # 從內(nèi)存中查詢id print res.id
# 剛上邊那段瞎說(shuō)了,請(qǐng)忽略,下面為更正信息
# 生成sql,select * from model;但未與物理db有相關(guān)交互。
# query現(xiàn)在為一個(gè)str,及query = 'select * from model'
query = Model.query
# 等價(jià)于 for res in query.all(),在物理db中執(zhí)行相關(guān)sql
# 現(xiàn)假設(shè)query中有三個(gè)結(jié)果[res1, res2, res3]
# 執(zhí)行完后query為查詢結(jié)果集合,query=[res1, res2, res3]
for res in query:
# 從內(nèi)存中查詢id
print res.id
# 清空緩存,但[res1, res2, res3]對(duì)象是保留的,及query=[res1, res2, res3]
db.commit()
# 等價(jià)于 for res in [res1, res2, res3]:
for res in query:
# 兩部操作:①select * from model where id = res.id,從內(nèi)存中查詢id
# 及commit后res1為detached狀態(tài),res.id后為attached狀態(tài)
print res.id你可以看看card.pop(index)這個(gè)方法,比你的簡(jiǎn)單粗暴。而且你這種寫(xiě)法,我不用試就知道有問(wèn)題。
好像沒(méi)有這種用發(fā)吧,哈哈。
但是我記得有這種用法:
>>> a= 1
>>> b= 2
>>> a, b = b, a
>>> print(a, b)
2 1
同時(shí)遍歷的話,不知道下面這種能否解決?供參考:
b = [1, 2, 3]
c = [(10, 20), (30, 40), (50, 60)]
for i in zip(b, c):
print(i)
>>>(1, (10, 20))
(2, (30, 40))
(3, (50, 60))北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。