(做生物信息的)你們是怎麼知道Python裡面sys.argv和getopt這種函數的?
01-12
感覺很有用,特別是做具有交互功能的生物信息分析Pipeline的時候。但是一般書裡面好像都沒怎麼涉及到這一塊(求例外推薦)。那麼知道的人們是怎麼知道的呢?小圈子裡的口耳相傳?
另外我還比較好奇那些寫生物信息分析(互動式)自動化流程的,是怎麼掌握main( )和一些自定義函數調用層面的整體構架的?顯而易見?還是耳濡目染?
官方手冊+stackoverflow
開始學習寫程序時都是在程序中指定參數和路徑,但後來遇到程序要復用,自然想到使用命令行參數(sys.argv),但它功能有限,所以接著轉向getopt或argparse,它功能足夠,但寫起來麻煩,所以現在小程序只用sys.argv,大的用argparse,不過最近發現個既簡單又強大的https://github.com/docopt/docopt,正在學習中。
看別人的源碼時看到的。
看起來像是標準庫啊,這種東西書里都會教啊?至少perl的書里就講了getopt什麼的
答案是想像力和谷歌大法
理由:
1,在計算機技術領域,很難有一門技術沒有被開發出來,只要有需求就有人去實現。2,開源領域大神遍地,他們熱衷於實現通用功能,移植技術更是多如牛毛。「只有想不到的,想到的一定有人做到了」,堅信這條原則,99%不會錯。
所以:只需你
1,找到合適的關鍵片語合,中文的,英文的2,充分的利用搜索引擎要是多方努力還找不到,只有兩種可能1,是老手嗎,找到可以做的事情了;2,是新手嗎,基礎太差,找本書看看吧。
我記得當時是看別人腳本發現的。腳本裡面用的是argparse模塊,然後上網查這模塊怎麼使用,查找過程中發現sys也能實現簡單功能。總結心路歷程,就是要多學習別人代碼。
題主可能想搭建流程,自己寫腳本串起來也可以。還可以試試一個叫snakemake的python模塊,感覺會比較方便。這有這麼神秘嗎,官網文檔是白放的嗎?http://docs.python.org
------------------------
貌似只有上面一句話,有點粗魯。介於題主非計算機專業,我在這裡就多說兩句。成功的開源項目,完善的官方文檔是必不可少的。在學習的過程中,當我們遇見一個新工具,新名詞,想要了解它,最快速的方法莫過於在搜索引擎中查找相關項目的官方文檔。在官方文檔不能解決問題的情況下,再查找相關的書籍、資料。而不是什麼「小圈子裡的口耳相傳」,沒有那麼神秘。剛開始學java 用的ecipse, 發現有默認的一些參數設置 argv 什麼的。 聯想起到。
我覺得你寫十萬行以上代碼自然就知道了
用 perl 時ARGV 是內置的。。
如果python是第一門語言,做一些書上的練習,自然而然就需要谷歌,用到這些庫了如果不是第一門語言,剛看完書就開始找這些庫了
有需求就有人做啊 命令行參數解析這麼基本的需求 就算標準庫沒帶你去搜肯定也能搜到 module 哪個語言都有的
當時用 Visual Studio 寫 C#,還有 Resharper 的時候,智能感知簡直不要太容易
一開始用 vim 寫 Python ,因為不熟悉經常寫錯函數,有時候手速快了敲錯了一個字元都會 error, 讓我情不自禁感到好用的 IDE 對新手的學習真的很有幫助繪圖的時候要輸入參數,然後就get了
lz的問題好可愛~我以前也有這種疑惑
官方文檔不看個10遍20遍的,怎麼能說Python入門了呢…
完全是C。Java聯想到的
推薦閱讀:
※想入生物信息學這個行業,python學習要達到什麼程度???
※怎麼評價新發布的odoo 11 ?
※2017,再來聊一聊Python,未來發展怎樣?