目前分類:Python (4)

瀏覽方式: 標題列表 簡短摘要

前陣子買了一本電子書,沒想到 epub 檔只不過是紙本的圖檔打包而已。充斥白邊在紙上或許有某種美感,但是在閱讀器上實在有點惱人,所以我就用 PIL 做了適當的剪裁,然後再用 ebooklib 重新打包 epub。因為對 ebooklib 不那麼熟,花了一點點時間才搞定,程式碼放在這裡給其他有類似需求的人參考。

這裡要說明一下,一般來說圖檔打包成 cbz 已經足夠了,但我這本是文字書,還是希望有個完善的目錄。雖然 Calibre 可以直接將 cbz 轉成 epub,但是還是有些不盡理想的地方,首先是圖片自動縮放的問題,再來是目錄的問題。當然還有一個因素是我忍不住愛折騰。

novus 發表在 痞客邦 留言(0) 人氣()

假想有一個小鎮住著 1000 人,每個人每週都會獲得當地幣值十元的淨收入。所以一個人十週共可存下 100 元,一年五十二週就是 520 元,沒有任何人例外。

這個小鎮最大的娛樂就是每個週末的賭馬了,每場比賽固定都會有兩匹馬參賽,勝率各為 50%,而且沒有人作弊或者具備內線消息,總之,押對的機率大概就和擲一枚公平硬幣一樣。

novus 發表在 痞客邦 留言(1) 人氣()

使用 tkFileDialog 取得多個檔案名稱有個惱人的小問題,即 tkFileDialog 並不會回傳 python list,而是傳回多個檔名串成的字串。當檔名不包含空白的時候,這個字串會以空白分隔各個檔名;否則各檔名會包含於 {} 當中。


filenames = tkFileDialog.askopenfilename(...)
    
# Example result:
#  D:/file1.txt D:/file2.txt D:/file3.txt
#  {C:/My Document/file1.txt} {D:/My Precious/file2.txt}

網路上很多範例都是直接用 split 之類的分解 tkFileDialog 回傳值,這個作法的問題在於,空白和 {} 都是合法的檔名字元,split (或其他無狀態的分割函數)不可能正確拆解。雖然我知道這樣問題很多,但通常我寫 Python 的時候都只是臨時需要某個功能而已,所以沒想太多就直接照著做。

novus 發表在 痞客邦 留言(0) 人氣()

過去一年多裡 docutils 已經成為我最喜歡的排版工具,本部落格大部分的文章也都是用 docutils 輸出的。但 docutils 還是有無法盡如人意之處,其中最主要的問題在於所產生的 HTML 和我部落格原本的 CSS 並不相容,例如 docutils 通常用 class 來指定樣式,但是我既有的策略恰好希望文章內容不要用 class selector。其次是 docutils 生成的 HTML 對於部落格來說頗為累贅,例如標題和區段會輸出成:

<h1>ooxx</h1>
<div class="section" id="ooxx">

以部落格來說,我覺得根本沒必要為區段建立 div。其他比較無所謂的問題還包括:docutils 並未嚴格遵循 HTML Strict、使用將被廢棄的 <tt> 標籤等等。

novus 發表在 痞客邦 留言(0) 人氣()