簡體   English   中英

使用xargs(或其他?)順序執行python腳本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM