【问题标题】:Stdin in PyDev (LiClipse\Eclipse)PyDev 中的标准输入 (LiClipse\Eclipse)
【发布时间】:2018-01-31 23:53:59
【问题描述】:

我在 LiClipse(Eclipse) 中遇到了这个脚本的问题

import stdio
import stddraw

# Read x and y scales from standard input, and configure standard
# draw accordingly. Then read points from standard input until
# end-of-file, and plot them on standard draw.

x0 = stdio.readFloat()
y0 = stdio.readFloat()
x1 = stdio.readFloat()
y1 = stdio.readFloat()

stddraw.setXscale(x0, x1)
stddraw.setYscale(y0, y1)

# Read and plot the points.
stddraw.setPenRadius(0.0)
while not stdio.isEmpty():
    x = stdio.readFloat()
    y = stdio.readFloat()
    stddraw.point(x, y)

stddraw.show()

我在“运行配置”中使用this file 作为“输入文件”。

我得到一个没有响应的黑色 stddraw 窗口。 如果我在 LiClipse 控制台中输入“Ctrl-Z”,有时会得到结果。

我已经在调试器中运行了这个脚本 - 它在 stdio.py 的行上停止(使用运算符“line = sys.stdin.readline()”) usa.txt 的最后一行。

我已经在 Geany 中运行过这个文件——它可以工作!

这是 PyDeve (Eclipse) 中的错误吗?

谢谢!

【问题讨论】:

  • readFloat 是否在每行末尾使用换行符?
  • 对了,你可以试试while stdio.hasNextLine()
  • 我在终端中运行这个脚本(“python plotfilter.py
  • Eclipse 只模拟一个实际的终端。同样,我不认为您正在使用不可见的换行符,因此它一直在等待读取浮点数
  • 我在调试器中看到,该脚本读取所有浮点数,除了最后一行。标准输出库:introcs.cs.princeton.edu/python/code/stdio.py

标签: python eclipse stdin pydev liclipse


【解决方案1】:

问题是sys.stdin.readline() 会一直等待输入... Eclipse 上的标准输入实现在程序实际完成之前不会给你一个 EOF(如果你在sys.stdin.readline() 之后放置打印,你会看到它会在您实际杀死 Eclipse 中的程序时打印最后一件事)......我不确定我是否会认为这是一个错误......也许它可能是一个功能(即:阅读后关闭标准输入输入文件)——它主要是一个实现细节,当您在控制台中通过管道传输某些内容时,它将稍后关闭标准输入(在 Eclipse 上,提供输入文件将为您提供输入,但会保持标准输入打开以供用户添加更多内容稍后)。

作为一种解决方法,我的建议是放置一个空行,然后检查从sys.stdin.readline().strip() 返回的行是否为空——如果是,则认为它已达到 EOF(或为 EOF 使用一些不同的标记)——另一种选择将只是从文件中读取它,而不是从标准输入。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题。我正在使用 sys.stdin.readlines()。我按照 [https://stackoverflow.com/a/31287752/4586180][1] 中的说明配置 eclipse 以读取我的输入文件中的文件

    我还选中了“如果需要,创建控制台”复选框。在 readlines() 之后,我能够在控制台中输入 ^d 。这导致 readlines() 完成

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-18
      • 1970-01-01
      • 1970-01-01
      • 2013-01-30
      • 2011-12-19
      • 2011-09-30
      • 2016-04-25
      • 1970-01-01
      相关资源
      最近更新 更多