基本上我正在運行mapreduce,所以我要管道進入減速機。我遇到的麻煩是如何指定一個目錄路徑,我將與os.listdir一起使用,以實質上獲得並計算單個目錄中的所有文件。但我知道我只想要最後一個目錄中的內容,而不是同一級別上的子目錄。我可能會考慮使用fileinput()。當使用一個python文件傳送到另一個文件時,可以將stdin與argv一起使用嗎?
我想我可能在這裏使用stdin錯誤,取決於它是否必須從命令行或者它是否可以間接從命令行。
這是我的命令行輸入:「./path1/path2/path3」./map.py |排序| ./red.py
我作爲一個錯誤我去做我想做的是-bash,不是目錄./pythonfile.py
使用Python 2.7.2
這是什麼我做:
def func():
path = sys.argv[0]
return [filenames for filenames in os.listdir(path)if os.path.isfile(os.path.join(path,filenames))]
if func() is not None:
for file in func():
sys.stdin.read()
...etc..
冒號的目的是什麼?謝謝,但我確定我基本上想要回顯腳本的路徑,那麼如何解析多個路徑名以達到我的上一個完整文件目錄?我不確定我是否理解你的元組或列表的例子,因爲我不知道要傳入的文件名。就參數而言,如果我以這種方式使用它,仍然可以以我需要的方式使用管道,並且是以相同的方式收到的論據?通過stdin或argv? – Nightvein 2012-04-13 02:15:12
啊,'[1:]'是省略第一項,因爲它只是腳本的名字。 (不是路徑)。我必須運行,但考慮到我使用'a'進行簡單測試,用戶將通過'argv [1]','argv [2]'等提供值。 – sarnold 2012-04-13 02:40:23