雖然在用 Python,但還是算初學者,一堆指令的用法和細節,都常常要上網找語法來用。這次突然翻到,Python 沒有 switch - case,喔喔喔!!有人整理過各種程式語言的switch - case,想不到連古老的COBOL 85也有類似的語法,更不用講在Python之後的Ruby或Perl了。
我是還沒寫到這麼高階的功能啦,不過看看別人怎麼處理這個問題也好。其實,書上會寫,要用if...elif...elif...else來處理這個問題。但是也有人想直接改別人的c code或php code而不要重寫,所以才會想出這些處理方法。
主要的參考網頁為 azalea says及 ActiveState Code,其實可以看看ActiveState Code下面的討論串,原來一個簡單的問題,其實有蠻多不同的創意解決方案,而不是教科書上寫的單一教條。
第一個方法是用Dictionary,第二個方法其實也是用Dictionary,再加上lambda。第三個方法就比較貼近我想的,直接寫一個 class來處理,以下的code,是2005年Brian Beck 就寫好的,來自於ActiveState Code,在此宣告他們的版權。
星期四, 6月 06, 2013
星期三, 6月 05, 2013
[解決] 用 Python來開 Microsoft Access的.mdb資料檔的中文欄位問題
又開始沒事找事做,開始改之前寫好的程式了。
在之前的文章:用 Python來開 Microsoft Access的.mdb資料檔曾經提到
後來有熱心網友提供了他的心得:用微軟提供的元件 ADODB 來存取 Access。所以我也很快樂的在新版程式中 import這些功能。一個不錯的使用方法及副程式,可以在AlarmChang所維護的Python NoteBook中找到程式碼,基本上直接copy就很好用了。
但是,還是一樣,一但整份.py文件儲存時是使用utf-8,那就完了,一直出現error。
重點是,我突然發現,在
這一段,其實是丟一個字串(SQL)給Microsoft ADODB COM去解譯,那我丟的字串符合它要的編碼規定(在我之前的文章有提,就是用ansi儲存的編碼),就可以了吧。
在之前的文章:用 Python來開 Microsoft Access的.mdb資料檔曾經提到
"pyodbc 是个很不错的库,api 也很好用,不过对中文支持的并不好"我的經驗也是如此。原始資料庫的開發者沒事把欄位名稱用上中文,結果就是我花了好久時間,還是不能用sql語法的where來限制欄位的比對結果。
後來有熱心網友提供了他的心得:用微軟提供的元件 ADODB 來存取 Access。所以我也很快樂的在新版程式中 import這些功能。一個不錯的使用方法及副程式,可以在AlarmChang所維護的Python NoteBook中找到程式碼,基本上直接copy就很好用了。
但是,還是一樣,一但整份.py文件儲存時是使用utf-8,那就完了,一直出現error。
重點是,我突然發現,在
SQL = "Select * from TableABC" rs = Connect_To_Access(SQL)
這一段,其實是丟一個字串(SQL)給Microsoft ADODB COM去解譯,那我丟的字串符合它要的編碼規定(在我之前的文章有提,就是用ansi儲存的編碼),就可以了吧。
星期日, 5月 19, 2013
DORA, Declaration on Research Assessment
小弟之前寫了一些文章,比如四年前的 '學術界的遊戲:impact factor'、三年前的'Impact Factor and Its Role in Academic Promotion'、去年的'在“科研指標”廢除後,SCI, Impact factor, Ranking 仍舊是研究者的共業'、以及今年的'Case Report 和 impact factor',都是在敍述,使用 "Impact factor" 是多麼 "不科學"的事。
今年,連最科學的雜誌:Science,它的主編 Bruce Alberts也站出來,也在這次的「舊金山研究評論宣言」──San Francisco Declaration on Research Assessment(DORA)一起反對使用了60多年的 Impact Factor,以及陳述了它對於研究環境的摧殘。
▲▲▲ 這是截圖自臉書上的文章
今年,連最科學的雜誌:Science,它的主編 Bruce Alberts也站出來,也在這次的「舊金山研究評論宣言」──San Francisco Declaration on Research Assessment(DORA)一起反對使用了60多年的 Impact Factor,以及陳述了它對於研究環境的摧殘。
▲▲▲ 這是截圖自臉書上的文章
星期三, 5月 08, 2013
用 Python來開 Microsoft Access的.mdb資料檔
其實 Python算是蠻容易了解的語言,至少在語法上算是蠻貼近於我們使用的文字,加上眾多的函式庫的支援,幾乎就是你要的函式大多都可以找到。加上它算是網路世代的程式語言,在網路功能的支援也不惶多讓。不過,沒好好唸過程式語言的我,對於其中的物件還是不太熟悉。
我會使用Python,也是被逼的。當初要交程式報告時,實在是搞不懂要怎麼去get及put網頁資料。看過java及C,直覺並不是我可以在一個假日就完成這樣工作的。因為之前稍稍有看過Python的網頁,它的語法和basic,pascal或Matlab都蠻像的,而且可以查得到網頁相關的功能。
這幾年都接了單位的"品質"精進作業。每年都要想一個品質專案,因為有些事是不得搬上抬面的,所以大家都做些顯而易見,不傷大雅的議題。今年我特別抄去年的專案,只是用 Python寫好電子化的處理方案。在用Python處理時,遇見資料庫讀寫的問題,因為實在太少資料了,所以拿上來分享一下。
先說我的狀況:就是要去開一個已有的.mdb檔,讀出裏面的資料,再上傳到單位的網頁中。為了讀database檔,Python簡單解決方案為使用pyodbc,或是使用pypyodbc。兩者都可以讀一些主流的sql server,以及Microsoft excel和access的存檔。兩者的差異只有pypyodbc是純python的程式碼實作出來的。打開.mdb檔的方式如下:
我會使用Python,也是被逼的。當初要交程式報告時,實在是搞不懂要怎麼去get及put網頁資料。看過java及C,直覺並不是我可以在一個假日就完成這樣工作的。因為之前稍稍有看過Python的網頁,它的語法和basic,pascal或Matlab都蠻像的,而且可以查得到網頁相關的功能。
這幾年都接了單位的"品質"精進作業。每年都要想一個品質專案,因為有些事是不得搬上抬面的,所以大家都做些顯而易見,不傷大雅的議題。今年我特別抄去年的專案,只是用 Python寫好電子化的處理方案。在用Python處理時,遇見資料庫讀寫的問題,因為實在太少資料了,所以拿上來分享一下。
先說我的狀況:就是要去開一個已有的.mdb檔,讀出裏面的資料,再上傳到單位的網頁中。為了讀database檔,Python簡單解決方案為使用pyodbc,或是使用pypyodbc。兩者都可以讀一些主流的sql server,以及Microsoft excel和access的存檔。兩者的差異只有pypyodbc是純python的程式碼實作出來的。打開.mdb檔的方式如下:
###打開.mdb檔的方式
conn = pyodbc.connect('DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\\dir\\file.mdb')
cursor = conn.cursor()
cursor.execute('select * from ProgressNote;')
###
星期日, 3月 10, 2013
你還在用印表機,還是開始用3D-Printer了?
星期四, 2月 28, 2013
氣管內雷射
常有人問我,我的專長是什麼。我制式的回答是:胸腔介入性檢查及治療。
但是什麼是介入性檢查及治療?基本上就是支氣管鏡檢查及治療、超音波檢查及治療。
最具代表性的支氣管鏡治療就是這個 (用影片來說比較快,所要講的也都打在影片中了):
沒有個人資訊,應該不會侵犯隱私吧!
但是什麼是介入性檢查及治療?基本上就是支氣管鏡檢查及治療、超音波檢查及治療。
最具代表性的支氣管鏡治療就是這個 (用影片來說比較快,所要講的也都打在影片中了):
沒有個人資訊,應該不會侵犯隱私吧!
訂閱:
文章 (Atom)

