在while循环中将多行粘贴到raw_input中

0 投票
1 回答
741 浏览
提问于 2025-04-17 07:12

我有一些代码,长得像这样:

while line != '' and line != 'STOP ME':
    line = raw_input("")
    buf.append(line+'\n')

sys.stdin.flush()
print raw_input("Input1:")
print raw_input("Input2:")

问题是,如果用户像这样复制粘贴数据:

第一行

第二行

停止我

"空行"

"空行"

一些无用的文字

在“停止我”之后,我的输入会被无用的文字淹没。有没有办法避免这种情况呢?

1 个回答

1

也许你在这里不需要用到 raw_input?你可以使用 sys.stdin 这个像文件一样的对象。比如可以用 sys.stdin.read 这个方法。

或者你可以用下面这样的方式:

buf.append(line.split('STOP ME\n', 1)[0]+'\n')

来获取在 STOP ME 这一行之前的数据。

撰写回答