2016-01-29 126 views
-1

我想處理作爲命令行參數傳遞的文件。現在只有一個參數,但我打算添加其他參數。我想處理作爲命令行參數傳遞的文件

這是到目前爲止我的代碼:

import argparse 

parser = argparse.ArgumentParser(description="Sample arg parsing") 

parser.add_argument('-f',type=file) 

try: 
    print parser.parse_args() 
except IOError, msg: 
    parser.error(str(msg)) 

我無法弄清楚如何傳遞給文件句柄來打開和工藝參數。 是的,我是一個n00b。 try塊就在那裏進行測試。

+0

參數是文本 - 它不能是文件 - 但您可以使用[FileType對象](https://docs.python.org/3/library/argparse.html#filetype-objects)將文件名轉換爲文件。 – furas

+0

感謝您的鏈接。似乎說通過使用FileType它正在爲我隱式打開文件。所以我仍然堅持如何引用它,以便我可以處理它? – CraigBoyd

+0

'args = parser.parse_args()'然後'args.f',因爲您使用了名稱'-f' – furas

回答

0

您需要將文件名作爲字符串傳遞。然後,您可以使用open()從文件名打開文件。請參閱Python文檔here(7.2 - 讀取&寫入文件)。

+0

好的......這是有道理的。但是,我如何引用傳遞的參數來將它設置爲等於一個字符串? – CraigBoyd

+0

它已經是一個字符串,你只需要讀取它的值。第一個例子展示瞭如何讀取參數值:https://docs.python.org/2/howto/argparse.html#introducing-positional-arguments –

+0

啊!所以無論在add_argument方法的第一個位置成爲參數的名稱,然後可以引用,對吧? – CraigBoyd