(做生物信息的)你們是怎麼知道Python裡面sys.argv和getopt這種函數的?

感覺很有用,特別是做具有交互功能的生物信息分析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,未來發展怎樣?

TAG:Python | 生物信息學 | Linux軟體 | Python框架 | R編程語言 |