[英]using xargs (or sth else?) to sequentially execute a python script
這個問題幾乎是這個問題的重復,但是幾乎是一個重復,而且沒有一個答案適合我想要達到的目標。
我要執行以下操作:有一個文件名列表,對每個文件名依次執行python腳本(!)。 現在,我知道我可以輕松解析python腳本中的文件名列表並在每一行執行任何功能,但是這里的想法是我想將批處理執行的靈活性移到shell上,而我的python腳本保持不變。
所以我的參數文件看起來像這樣:
$ cat arglist
1 # <- separated by newlines
2
3
4
python腳本:
import sys
print("args received:",sys.argv)
我試過了:
$ cat arglist | xargs python ./pyxargs.py -a -b -c
args received: ['./pyxargs.py', '-a', '-b', '-c', '1', '2', '3', '4']
但是我想要實現的是以下幾點
args received: ['./pyxargs.py', '-a', '-b', '-c', '1']
args received: ['./pyxargs.py', '-a', '-b', '-c', '2']
args received: ['./pyxargs.py', '-a', '-b', '-c', '3']
args received: ['./pyxargs.py', '-a', '-b', '-c', '4']
我猜xargs的工作方式讓我感到困惑。 還是僅僅是錯誤的工具,總是組合參數並執行一次執行,而不是單獨執行? 如果是,那么什么是xargs的合適替代品?
感謝幫助
嘗試使用-I
:
< arglist xargs -I file python ./pyxargs.py -a -b -c file
請注意,如果您的任何文件名包含換行符,此操作都會失敗,但這是嘗試在文本文件中記錄文件名所固有的,因此這可能不會成為問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.