python memo

jupyter note bookjavascript

 

自動提示php

 1 #安裝
 2 打開Anaconda Prompt窗口,執行第一個命令,用於安裝nbextensions:
 3 pip install jupyter_contrib_nbextensions
 4 再執行第二個命令,用於安裝 javascript and css files
 5 jupyter contrib nbextension install --user
 6 最後執行,用於安裝configurator
 7 pip install jupyter_nbextensions_configurator
 8 
 9 #卸載
10 pip uninstall jupyter_contrib_nbextensions
11 pip uninstall jupyter_nbextensions_configurator

 

安裝opencvcss

pip install opencv-python

 

pyqthtml

pip install PyQt5
pip install pyqt5-tools
C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\envs\machine\Lib\site-packages\pyqt5_tools

 

 

open ai gym 安裝java

1 $  pip install gym #最小化安裝
2 or
3 $  pip install gym[all] #所有安裝 可是安裝有問題

 https://keras-gym.readthedocs.ionode

https://github.com/KristianHolsheimer/keras-gympython

 

keras強化學習庫linux

https://github.com/keras-rl/keras-rl/git

 

https://github.com/quantylab/rltrader
https://pypi.org/project/fix-yahoo-finance/

linux:pip install ta-lib 
https://www.lfd.uci.edu/~gohlke/pythonlibs/#ta-lib 下載相應版本的 ta-lib windows 64bit: pip install TA_Lib
-0.4.10-cp36-cp36m-win_amd64.whl conda install pandas-datareader pip install fix_yahoo_finance 畫圖 pip install https://github.com/matplotlib/mpl_finance/archive/master.zip conda install bokeh
pip install jupyterlab
須要安裝node.js 之後 從新打開 anaconda prompt jupyter labextension install jupyterlab_bokeh conda install BeautifulSoup4

https://pyecharts.org/#/zh-cn/rectangular_charts

 

jupyter notebook 發表在blog github

轉HTML 

ipython nbconvert --to html --template basic filename.ipynb 

須要頭部添加CSS

 1 <style type="text/css">  
 2 .highlight{background: #f8f8f8; overflow:auto;width:auto;border:solid gray;border-width:.1em .1em .1em .1em;padding:0em .5em;border-radius: 4px;}  
 3 .k{color: #338822; font-weight: bold;}  
 4 .kn{color: #338822; font-weight: bold;}  
 5 .mi{color: #000000;}  
 6 .o{color: #000000;}  
 7 .ow{color: #BA22FF;  font-weight: bold;}  
 8 .nb{color: #338822;}  
 9 .n{color: #000000;}  
10 .s{color: #cc2222;}  
11 .se{color: #cc2222; font-weight: bold;}  
12 .si{color: #C06688; font-weight: bold;}  
13 .nn{color: #4D00FF; font-weight: bold;}  
14 </style> 

或者轉成MarkDown 放在Github

ipython nbconvert --to markdown  filename.ipynb 

 

量化書籍

https://wizardforcel.gitbooks.io/python-quant-uqer/19.html

http://baostock.com/baostock/index.php/%E9%A6%96%E9%A1%B5

 

移動窗口

1 import numpy as np
2 arr=np.arange(0,5)
3 print("arr=",arr)#arr= [0 1 2 3 4]
4 arr1=np.roll(arr,2)#移動窗口
5 print("arr1=",arr1)#arr1= [3 4 0 1 2]

 

error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools

解決:

https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/?rr=https%3A%2F%2Fdololak.tistory.com%2F520

下載安裝:Microsoft 生成工具 2015 更新 3

zipline 建立python3.5 環境 不能使用3.6 按下面順序安裝

1.安裝上面的 「Microsoft 生成工具 2015 更新 3」

2.pip install zipline

3.pip install quandl

quandl API key:s3aGDwjM8DCn6LQFSeCW

 

安裝sqlite3

conda install -c anaconda sqlite 

1.建立/打開數據庫

 1 import sqlite3 2 conn = sqlite3.connect('my_sql3.db') 

2.建立表

 1 import sqlite3
 2 conn = sqlite3.connect('my_sql3.db')
 3 c = conn.cursor()
 4 c.execute('''CREATE TABLE COMPANY
 5        (ID            INT PRIMARY KEY     NOT NULL,
 6        NAME           TEXT    NOT NULL,
 7        AGE            INT     NOT NULL,
 8        ADDRESS        CHAR(50),
 9        SALARY         REAL);''')
10 print("建立成功")
11 conn.commit()
12 conn.close()
13 #建立成功

 

3.添加 INSERT

 1 import sqlite3
 2 conn = sqlite3.connect('my_sql3.db')
 3 c = conn.cursor()
 4 c.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
 5       VALUES (1, 'Paul', 32, 'California', 20000.00 )");
 6 
 7 c.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
 8       VALUES (2, 'Allen', 25, 'Texas', 15000.00 )");
 9 
10 c.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
11       VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )");
12 
13 c.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
14       VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 )");
15 conn.commit()
16 print("添加成功")
17 conn.close()
18 #添加成功

 

4.查詢SELECT

 1 import sqlite3
 2 
 3 conn = sqlite3.connect('my_sql3.db')
 4 c = conn.cursor()
 5 cursor = c.execute("SELECT id, name, address, salary  from COMPANY")
 6 for row in cursor:
 7     print('ID =%d NAME=%s ADDRESS=%s SALARY=%d '%(row[0],row[1],row[2],row[3]))
 8 conn.close()
 9 
10 """
11 ID =1 NAME=Paul ADDRESS=California SALARY=20000 
12 ID =2 NAME=Allen ADDRESS=Texas SALARY=15000 
13 ID =3 NAME=Teddy ADDRESS=Norway SALARY=20000 
14 ID =4 NAME=Mark ADDRESS=Rich-Mond  SALARY=65000 
15 """

 

5.修改 UPDATE

 1 import sqlite3
 2 
 3 conn = sqlite3.connect('my_sql3.db')
 4 c = conn.cursor()
 5 c.execute("UPDATE COMPANY set SALARY = 25000.00 where ID=1")
 6 conn.commit()
 7 print("更改數:",conn.total_changes) 
 8 
 9 #查詢顯示
10 cursor = conn.execute("SELECT id, name, address, salary  from COMPANY")
11 for row in cursor:
12     print('ID =%d NAME=%s ADDRESS=%s SALARY=%d '%(row[0],row[1],row[2],row[3]))
13 conn.close()
14 """
15 更改數: 1
16 ID =1 NAME=Paul ADDRESS=California SALARY=25000 
17 ID =2 NAME=Allen ADDRESS=Texas SALARY=15000 
18 ID =3 NAME=Teddy ADDRESS=Norway SALARY=20000 
19 ID =4 NAME=Mark ADDRESS=Rich-Mond  SALARY=65000 
20 """

 

6.刪除

 1 import sqlite3
 2 
 3 conn = sqlite3.connect('my_sql3.db')
 4 c = conn.cursor()
 5 c.execute("DELETE from COMPANY where ID=2;")
 6 conn.commit()
 7 print("總共刪除行:",conn.total_changes) 
 8 
 9 #查詢顯示
10 cursor = conn.execute("SELECT id, name, address, salary  from COMPANY")
11 for row in cursor:
12     print('ID =%d NAME=%s ADDRESS=%s SALARY=%d '%(row[0],row[1],row[2],row[3]))
13 conn.close()
14 """
15 總共刪除行: 1
16 ID =1 NAME=Paul ADDRESS=California SALARY=25000 
17 ID =3 NAME=Teddy ADDRESS=Norway SALARY=20000 
18 ID =4 NAME=Mark ADDRESS=Rich-Mond  SALARY=65000 
19 """

 

 1 #pip install sqlalchemy
 2 from sqlalchemy import create_engine
 3 engine = create_engine(r'sqlite:///G:\python\Prj\04.Proj\KRX_Date\foo.db')#這樣也行
 4 engine = create_engine('sqlite:///G:\\python\\Prj\\04.Proj\\KRX_Date\\foo1.db')#這樣也行
 5 
 6 
 7 #添加數據    
 8 df1 = pd.DataFrame({'name' : ['User 4', 'User 5']})
 9 df1.to_sql('users', con=engine, if_exists='append') #if_exists='append'追加 replace:替換
10 engine.execute("SELECT * FROM users").fetchall()
11 
12 #代替數據
13 df1.to_sql('users', con=engine, if_exists='replace',index_label='id')
14 engine.execute("SELECT * FROM users").fetchall()
15 
16 #讀取數據
17 df = pd.read_sql_query("select * from users where id < 10", engine)
18 print(df)

 

 

python 模擬鼠標 鍵盤

pip install pywinauto

 1 process:進程id
 2 app = Application().connect(process=2341)
 3 handle:應用程序的窗口句柄
 4 app = Application().connect(handle=0x010f0c)
 5 path:進程的執行路徑(GetModuleFileNameEx 模塊會查找進程的每個路徑並與咱們傳入的路徑去作比較)
 6 app = Application().connect(path='C:\\Windows\\System32\\notepad.exe')# 可能權限問題
 7 參數組合(傳遞給pywinauto.findwindows.find_elements()這個函數)
 8 app = Application().connect(title_re=".*Notepad", class_name=「Notepad」)
 9 
10 2. 隱式等待
11 a) wait(wait_for, timeout = None, retry_interval = None)
12 wait_for可傳入五種參數, 能夠組合傳參,但要以空格隔開:
13 exists: 窗口變成有效的句柄
14 visible: 窗口可見,沒有隱藏
15 enabled: 窗口沒有disable
16 ready: visible + enable
17 active: active
18 timeout:設置超時時間,若在n秒內沒有等到窗口在wait_for中傳入的幾種狀態,則會拋出TimeoutError。
19 retry_interval:超時後,間隔n秒再次重試。
20 Dlg.wait(「exists ready」, timeout = 5, retry_interval = 3)
21 
22 b) wait_not(wait_for_not,timeout = None,retry_interval = None)
23 等待窗口不處於某種狀態時。參數與wait傳參一致。
24 
25 
26 層級定位
27 app.window(class_name = ’Notepad’).window(class_name = ‘#32770’)
28 app.window(class_name = ‘Notepad’).child_window(class_name = ‘#32770’)
29 
30 wpath定位
31 若元素值爲空,或不是惟一的狀況下,可以使用相似selenium中xpath的定位方式,根據查子元素的序號去定位元素。
32 app_window = app.window(class_name=‘Qt5QWindowIcon’) #定位登陸窗口
33 app_window.children()[1].children()[0].children()[0] .children()[2] #定位用戶名輸入框控件(序號從0開始查)
34                                                 
35 3. 輸入框輸入
36 Dlg.control.type_keys(「xxxxx」)
37                                                 
38 4. 菜單欄
39 app.window.menu_select(Edit -> Replace)
40                                           
41 5. 鼠標點擊                      
42 a)click() 點擊Button控件
43 b)check_by_click() 經過click()方法勾選checkbox
44 c)uncheck_by_click() 經過click()方法取消勾選checkbox
45 d)get_check_state() 返回checkbox的勾選狀態(0沒勾選,1勾選,2不定)
46 e)is_checked(勾選返回true,爲勾選返回false,不定返回None)
47 f)check() 勾選checkbox
48 g)uncheck() 不勾選checkbox
49 h)invoke() 點擊(uia mode)
50 i)toggle () 勾選checkbox(uia mode)
51 
52 6. 鍵盤操做
53 「+」:Shift
54 「^」:Control
55 「%」:Alt

 

 1 from pywinauto.application import Application
 2 
 3 # 打開一個記事本(若是已經打開,能夠忽略)
 4 app = Application().start("notepad.exe")
 5 
 6 # 綁定進程,class_name和title是可選的,能夠靈活使用,若是找到多個貨沒有找到該程序,程序會報錯
 7 app = Application().connect(class_name="Notepad",title="無標題 - 記事本")                        
 8 
 9 # 獲得可操做的窗口,能夠傳入標題,類名,或者將標題傳入鍵值
10 win = app.window(title="無標題 - 記事本")
11 # 或者(一般使用此方法)
12 win = app["無標題 - 記事本"]
13 
14 # 可使用Edit對可編輯區進行編輯
15 win.Edit.type_keys('test.txt')
16 win.menu_select("文件->保存")
17 # 當彈出新的窗口時,窗口標題變化,所以須要從新肯定可操做窗口
18 win = app['另存爲']
19 win.Edit.type_keys('test.txt')
20 # 窗口內含有的按鈕等名稱,一樣能夠做爲鍵值傳入,從而獲得控件
21 win['保存'].click()
相關文章
相關標籤/搜索