将数据传递到python调试器并以交互方式编写python程序

时间:2012-12-27 15:04:12

标签: python linux

假设您有一个包含LETTER,NUMBER个逗号分隔标记的大文件。您想编写一个从标准输入读取的程序,并为每行输出NUMBER + 1。非常琐碎的程序,我明白了。但是,这是约束 - 你只能在管道中一次读取这个标准,你必须从编写一个空文件开始。

例如:

cat FILE.csv | python empty_program.py

这应该会弹出一个交互式会话,允许您编写所需的代码。由于empty_program.py没有调用stdin.readline(),因此stdin缓冲区是合适的。

这样的事情可能吗?

可以这样做的一个例子是Excel VBA调试器/ IDE。它允许您暂停执行 - 向程序源代码添加新行并继续执行。

1 个答案:

答案 0 :(得分:0)

cat FILE.csv | python empty_program.py 那么,python将尝试读取“empty_program.py”,并且无法在其中找到任何内容,假设有文件,然后退出。如果该文件不存在,则会出错。我测试了它[你应该能够做到这一点,不需要那么多努力 - 可能比去SO和编写问题要少得多]。

所以,我的下一个想法是使用交互式python进程,但是因为你通过stdin提供东西,它不会工作 - 我没有一个好的csv文件,所以我做了“cat somefile.c | python“,并且在”int main()“中出现”无效语法“。我很惊讶它到目前为止,但我猜这是因为#include被视为评论。

大多数交互式编程语言都是从标准输入读取的,因此您无法真正按照任何方式执行所描述的操作。

我很不确定你为什么要这么做。如果您的第一个程序可以生成相关的程序代码,为什么不将它放在一个文件中让python读取该文件...而不是跳过箍?请注意,IDE与命令行程序不同。我很确定如果你在某些方面努力工作,你可以编写一个C程序,用Python插件来访问Eclipse IDE。但这确实是在做艰苦的事情。为什么有人愿意花那么多精力去实现这么少,我没有看到。

很抱歉,但我真的没有看到你想要做的事情 - 我相信你有一些好主意,但我确信实施细节需要加以解决。