Python程序通过命令行参数提取列数据?

时间:2018-04-07 03:33:57

标签: python-3.x file command-line-arguments

我的python程序 extract.py 正在尝试从文本文件中提取“列”数据(使用命令行参数指示从哪个列中提取数据)。

例如; animals.txt 包含...

鸟狗猫鸽

老虎狮子昆虫青蛙

豹猫大猩猩猿

在命令行中......

python extract.py 1 animals.txt

旨在提取鸟,虎,豹(第一列数据)。

python extract.py 3 animals.txt

旨在提取鸽子,青蛙,猿(第三列数据)。

我的extract.py目前包含

import sys

file_name = sys.argv[2] # Text file input is stored in file_name

with open(file_name, "r") as my_file:
    contents = my_file.readlines()
    print(contents)

具体来说,我正在努力提取列数据(第一列,第二列,第三列)分别基于参数 1,2,3。

知道一行中的每个单词只能在文本文件中用一个空格分隔。

欢呼寻求帮助。

1 个答案:

答案 0 :(得分:0)

import sys

file_name = sys.argv[2]        # Text file input is stored in file_name
col_numbr = int( sys.argv[1] ) # column number

with open(file_name, "r") as my_file:
    for each_line in my_file:            # taking line by line

        line_list = each_line.split(' ') # each line is splited at space 
                                         # and made into a list

        print ( line_list[col_numbr-1] ) # -1 is added to start indexing from 1

试试这段代码。

文本文件中的每个字符都很重要,因此不应该有任何胭脂空格或换行符。