我有一個檔案(x.txt),其中有一列包含一百個值。
228.71
245.58
253.71
482.72
616.73
756.74
834.72
858.62
934.61
944.60
....
我想將這些值中的每一個輸入到我擁有的現有腳本中,這樣我在終端上的命令是:
script_name 228.71 245.58 253.71........... and so on.
我正在嘗試創建一個 bash 腳本,以便從檔案中自動讀取每一行并將其帶入腳本。我已經嘗試了一段時間,但找不到解決方案。
有沒有辦法做到這一點?
uj5u.com熱心網友回復:
您可以將文本檔案逐行讀取到串列中,并在途中洗掉任何換行符。該subprocess.call呼叫采用要運行的命令串列以及任何引數。因此,使用剛剛讀取的值和命令名稱創建一個新串列。
import sys
import subprocess
values = [line.strip() for line in open("x.txt")]
subprocess.call(["script_name"] values)
uj5u.com熱心網友回復:
在純 Bash 中,您可以使用mapfile/readarray來填充輸入檔案的每一行的陣列。
例如:
#!/usr/bin/env bash
CMDNAME="${0##*/}"
mapfile -t data < x.txt
printf "%s %s\n" "$CMDNAME" "${data[*]}"
使用名為的腳本輸出foo.sh:
$ ./foo.sh
foo.sh 228.71 245.58 253.71 482.72 616.73 756.74 834.72 858.62 934.61 944.60
uj5u.com熱心網友回復:
為此有一個標準實用程式。
$ cat x.txt | xargs script_name
有關詳細資訊,請參閱手冊頁。可能您想調整該-n值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/520789.html
標籤:Python重击壳
