python:读取文本文件,提取数据

时间:2015-09-29 19:01:16

标签: python

请问我对python很新, 我正在尝试创建一个在命令行中运行的python文件:

myscript.py hosts.txt tag

for example:
 if tag = Test 
 return wsgwtestmg.mass.gov
 if tag = QA
 return wsgwaltmg.mass.gov

hosts.txt :

    Test :  wsgwtestmg.mass.gov
    QA : wsgwaltmg.mass.gov

myscript.py:

 import sys

    def readArgument():
    print('Number of arguments:', len(sys.argv), 'arguments.')
    identifier = str(sys.argv[1])
    hostTag = str(sys.argv[2])
    extractURLhost(identifier,hostTag)

    def extractURLhost(idt,tag):
    print(idt)
    with open(idt) as f:
        content = f.readlines()
        print(content)

    readArgument()

我的结果是:

Number of arguments: 3 arguments.
hosts.txt

['Test :  wsgwtestmg.mass.gov\n', 'QA : wsgwaltmg.mass.gov\n']

我做得对吗?或者还有其他简单的方法可以做同样的事情吗?

如何使用第三个参数提取网址?

谢谢,感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

一种选择是从文本文件中创建字典,并从该字典中获取结果。像这样:

from sys import argv
with open(argv[1]) as f:
    addresses = {i.split(" : ")[0] : i.split(" : ")[1] for i in f}
print(addresses[argv[2]])

答案 1 :(得分:0)

import sys

with open('hosts.txt') as f:
    print {x.split(' : ')[0].lower(): x.split(' : ')[1] for x in f.read().splitlines()}.get(sys.argv[1:][0].lower(), 'No host found')