簡體   English   中英

來自文件的python腳本命令行參數

[英]python script command line arguments from file

的test.txt

port = 1234

host = abc.com

test.py

port = sys.argv[1]

host = sys.argv[2]

我想提供test.txt作為python腳本的輸入:

python test.py test.txt

因此,文本文件中的端口和主機值應作為命令行參數傳遞給python腳本,這些參數將被傳遞到腳本中的端口和主機。

如果我做 :

python test.py 1234 abc.com

參數傳遞給sys.argv [1]和sys.argv [2]

同樣我想用txt文件讀取來實現。

謝謝。

給定帶有節頭的test.txt文件:

[settings]
port = 1234
host = abc.com

您可以使用ConfigParser庫來獲取主機和端口內容:

import sys
import ConfigParser

if __name__ == '__main__':
    config = ConfigParser.ConfigParser()
    config.read(sys.argv[1])
    print config['settings']['host']
    print config['settings']['port']

在Python 3中,它被稱為configparser (小寫)。

在Linux中這樣做的方法是:

 awk '{print $3}' test.txt | xargs python test.py

您的.txt文件可以分為3列,其中第3列包含端口和主機的值。 awk '{print $3}'提取那些列, xargs將它們作為輸入參數提供給python腳本。

當然,只有當您不想修改.py腳本來讀取文件並提取這些輸入值時。

我只想把文本文件寫成:

1234
abc.com

然后你可以這樣做:

input_file = open(sys.argv[1])
port = int(input_file.readLine())
host = input_file.readLine()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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