1
我有followint的情況:如何在使用並行時正確處理python腳本的輸入參數?
我的腳本(比如腳本.py)需要一個參數作爲輸入。我有一個帶有一系列可能輸入的.txt文件(每個輸入都是一個代表ID的字符串)。
在腳本中我做這樣的事情
#!/usr/bin/python
import sys
def doStuff(ID):
ID = str(ID)
path = ID + "/posts?"
print "\n\n\t"+path
foo = ID + "hello"
print foo
print ID+"hello"
sys.exit(0)
inputID =sys.argv[1]
print "Input ID\t-\t" + str(inputID)
doStuff(inputID)
如果我運行
python script.py 123456789
代碼我正確地得到
Input ID - 123456789
123456789/posts?
123456789hello
123456789hello
但如果我這樣做
cat IDs.txt | parallel python script.py {}
我得到
Input ID - 123456789
/posts? 123456789
hello6789
hello6789
這裏發生了什麼?當我連接字符串的順序恢復,而且在過去的兩年將打印inputID是「你好」覆蓋
查找到的FileInput模塊,這可以幫助你接受來自管道的stdout行數據:https://docs.python.org/ 2/library/fileinput.html –
它看起來是有用的,如果我應該讀取python scr內的文件IPT。在我的情況下,python腳本的輸入只是一個字符串。 – user2614596