Feeds:
文章
留言

Archive for the ‘Python’ Category

[Python] 命令列轉Web UI

寫了一個找歌的 Command Line 程式,用的人說不會用 Console  囧rz

今天想到何不用 cgi 作個外包變成 web ui, 果然有人做了[1]

目錄結構

c:\Python26\

  • cgi-bin\
    • web.py
  • func.py

執行

# c:\Python26 下執行

python -m CGIHTTPServer

測試

http://localhost:8000/cgi-bin/hello.py?v=紅線

執行結果

 

20140825-01

完整程式碼

 

參考資料

[1] http://www.johnloomis.org/python/cgiserver.html

Read Full Post »

Everything 是一套我非常喜歡的檔案搜尋工具,今天才注意到他有SDK,順便練習 python 2.x 的 ctypes 於是封裝了一下

目錄結構

/es.py /Everything32.dll

完整程式碼

執行結果

20140821-01

Read Full Post »

[Python] gzip uncompress string

找很久. 紀錄一下

for Python 2.x, 15+32 表示自動偵測是 gzip 或 zlib 資料

zlib.decompress(bytes(bytearray(gzip_str)), 15+32)

http://stackoverflow.com/questions/6123223/howto-uncompress-gzipped-data-in-a-byte-array

Read Full Post »

最近打算把部份資料移轉到 leanote (很棒的 Evernote 替代品, Open Source), 原先打算從 .exb (sqlite3) 取出記事, 可惜不順利, 於是改從匯出格式 .enex 著手, chrishan 用 lxml 解析範例運行不錯,可惜不是我要,於是我用 PyQuery 寫了一個解析我要的內容

測試環境

  • Windows XP
  • Python 2.6
  • Evernote 5.3.1.x

 

完整範例

 

測試案例

a.enex

20140808-01

匯出結果

20140808-02

 

 

 

Read Full Post »

之前寫程式使用 shelve 來紀錄抓取的連結, 因為使用上非常簡單也沒有特殊需求,就用了這個有歷史的套件… 使用上也沒什麼特殊

import shelve
db = shelve.open('db.dat', 'c')
if not link in db:
# do something
db[link] = 'pass'

可是最近頻繁遇到 “bsddb.db.DBRunRecoveryError" 也找不到原因,有人建議改用sqlite, 不過我又不想為了這個簡單功能寫SQL. 後來想說 shelve 有提供很多的資料儲存方式, 不會有 sqlite 吧 XD, 沒錯就是 sqlite3dbm 寫法幾乎一樣

import sqlite3dbm
db = sqlite3dbm.sshelve.open('db.sqlite3')
if not link in db:
# do something
db[link] = 'pass'

資料移轉也非常簡單

import shelve
db = shelve.open('db.dat', 'c')
import sqlite3dbm
db2 = sqlite3dbm.sshelve.open('db.sqlite3')
for key in db.keys():
db2[key] = db[key]

真是好物…. 先觀察一陣子….

Read Full Post »

先不深究為什麼需要這個功能(以後有機會再來討論),但是要如何實現呢?Evernote 的文章清單透過 Spy++ 觀察他是 ENTableListCtrl Class… 並非標準的 Listview… pywinauto 我還不知道如何處理非標準控制像,˙只好模擬我按下"方向鍵-下"( 透過 spy++ 攔截訊息)。

最終只需如下簡單的腳本(需要先選一個項目)

2013101001

 

 

 

Read Full Post »

Evernote 官方SDK只允許透過 Web Service 方式存取,還好在 Windows上有提供"C:\Program Files\Evernote\Evernote\enscript.exe" 可透過命令列新增記事。詳細的說明可透過 enscript.exe /? 取得。建立記事的說明可透過 enscript /createnote /? 取得說明。一般來說你可透過如下指令新增記事

# 在 notebook 記事本新增標題為"subject"的記事, 內容為 hello, 並夾帶 my.doc 和 you.doc 附件

echo hello | enscript.exe createnote /n “notebook" /i “subject" /a my.doc /a you.doc

如果是中文,上述寫法內文是會造成亂碼,即使是也不行

type file.txt | enscript.exe createnote /n “notebook" /i “subject" /a my.doc /a you.doc

只能透過變通作法,就是將內文以 big5 編碼存成副檔名為 .txt 的檔案,然後以 /s 參數方式新增,如

enscript.exe createnote /n “notebook" /i “subject" /s file.txt /a my.doc /a you.doc

因此只需要將上述指令用 Python 稍微封裝並搭配第一部份的匯出資料就可以順利將 nsf 轉存到 Evernote。

一個簡單的範例

2013100401

Read Full Post »

« Newer Posts - Older Posts »