gpt4 book ai didi

python - MapReduce Python,似乎无法将条件传递到文本文件

转载 作者:太空宇宙 更新时间:2023-11-03 21:46:38 26 4
gpt4 key购买 nike

首先,我对 MapReduce 非常陌生(实际上就在本周),并且将其作为我当前正在学习的类(class)的一部分进行,因此如果我犯了基本错误,请原谅我。

我尝试寻找问题的答案,但发现了任何相关的内容。

我有一个文本文件,其中数据很简单,例如:

Reg1, Yes
Reg2, No
Reg3, Yes
Reg4, Yes
Reg5, Yes
Reg6, Yes
Reg7, Yes
Reg8, No
Reg9, Yes
Reg10, Yes
Reg11, Yes
Reg12, Yes
Reg13, Yes
Reg14, No
Reg15, Yes

我想做的第一件事是计算是和否 - 这部分工作正常,但如果是“否”,则使用第二个模型将“reg”单词通过管道传输到文本文件。我在某处读过,在这种情况下最好看台词而不是文字,这是有道理的。

以下是我尝试获得执行此操作的映射器:

import sys

for line in sys.stdin:

line = line.strip()

lines = line.split()

for line in lines:
if 'Yes' in line:
sys.stdout.write('%s\t%s\n' % (line,1))

else:
sys.stderr.write('%s\t%s\n' % (line,1))

print('%s\t%s' % (line, 1))

但结果输出是:

Reg1,   1
Reg2, 1
No 1
Reg3, 1
Reg4, 1
Reg5, 1
Reg6, 1
Reg7, 1
Reg8, 1
No 1
Reg9, 1
Reg10, 1
Reg11, 1
Reg12, 1
Reg13, 1
Reg14, 1
No 1
Reg15, 1

而我只想输出:

Reg2, No
Reg8, No
Reg14, No

任何人都可以指出我哪里出错了吗?这些工作仅用于理论目的,这就是我使用 Python 的原因(加上这是导师演示的内容)

提前致谢。

最佳答案

无需将行拆分为单词。in 运算符可以识别字符串中的子字符串。

然后你也不需要做那么多的打印,最终你的代码将是

import sys

for line in sys.stdin:
line = line.strip()
if 'Yes' in line:
# print(line) # we don't want to print the Yes lines
pass
# but if we want to leave the IF unchanged, then a pass instruction needs to fill it
else:
print(line)
# if you want results to be pipe-able, comment line above, uncomment line below
#sys.stdout.write(line)

关于python - MapReduce Python,似乎无法将条件传递到文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52446609/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com