目前日期文章:201311 (3)

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

http://youtu.be/XVxJuBgE0ic

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

在程式中通常有若干種方法將資訊串成字串,一些可能的寫法如:

msg = format("Do you want to delete %s from %s?", user.name, group.name);

msg = "Do you want to delete {1} from {2}?".format(user.name, group.name);

msg = "Do you want to delete " + user.name + " from " + group.name + "?";

msg << "Do you want to delete " << user.name << " from " << group.name << "?";

對於多數應用來說,以上並沒有其中一個做法比其他具備壓倒性優勢,所以在使用上有很大程度取決於個人喜好。有些比較具有經驗的人可能會覺得 formatter 風格比較容易閱讀,不過當插入的資料太多時一樣會造成畫面破碎,而且資料和插入位置不容易對起來。

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

使用 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 發表在 痞客邦 PIXNET 留言(0) 人氣()