我有一个数据集,其中行和列保存为制表符分隔的文本格式。我想根据 column[x] 是否具有特定值,将此数据集分成两个较小的数据集。
这是数据集的示例(没有标题): dataset.txt
test1 abc 1
test2 efg 2
test3 hdh 1
test4 xyz 24
预期输出应如下所示: dataset1.txt
test1 abc 1
test3 hdh 1
数据集2.txt
test2 efg 2
test4 xyz 24
我想用 import sys 来实现这个,这样我就可以输入原始数据集的文件名作为一个 unix 命令,并指定我想要的输出选项。在这种情况下,我将定义一个名为“unique”的选项来输出 dataset1.txt,并定义一个选项“multi”来输出 dataset2.txt。命令行应如下所示:
python code.py [option] [filename] > [output]
例如
python code.py unique dataset.txt > dataset1.txt
python code.py multi dataset.txt > dataset2.txt
这是我写的代码:
import sys
option = sys.argv[1]
filename = sys.argv[2]
options = ['unique','multi']
def out_unique(data):
for row in data:
if column[2] == 1:
print row
def out_multi(data):
for row in data:
if column[2] != 1:
print row
if option == 'unique':
out_unique(filename)
elif option == 'multi':
out_multi(filename)
else:
print 'available options:', options
这是我得到的错误:
Traceback (most recent call last):
File "out_if_col.py", line 23, in <module>
out_unique(filename)
File "out_if_col.py", line 13, in out_unique
if column[3] == 1:
NameError: global name 'column' is not defined
我知道这对于那里的专家来说可能看起来相当荒谬,但这是我第一次尝试在 python 中完成一些事情。老实说,我花了相当多的时间编写上面的代码,如果有人指出我错了什么,我将不胜感激。