0

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

例如:

猫文件.csv | python empty_program.py

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

这样的事情可能吗?

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

4

1 回答 1

0

cat FILE.csv | python empty_program.py 好吧,python 将尝试读取“empty_program.py”,并且在其中找不到任何内容,假设有文件,然后退出。如果该文件不存在,则会出现错误。我对其进行了测试[您也应该能够做到这一点,并不需要太多的努力-可能比去 SO 写问题所需的要少得多]。

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

大多数交互式编程语言都是从标准输入读取的,所以你不能用它们中的任何一个来做你所描述的事情。

我不确定你为什么要这样做。如果你的第一个程序可以产生相关的程序代码,你为什么不把它放在一个文件中让 python 读取那个文件......而不是跳过箍?请注意,IDE 与命令行程序不同。我很确定,如果您在某件事上足够努力,您可以编写一个 C 程序来使用 Python 插件访问 Eclipse IDE。但这真的很难。为什么有人愿意花这么多精力来实现这么少,我不明白。

对不起,但我真的不明白你想要做什么 - 我相信你有一些好主意,但我确信需要处理实施细节。

于 2012-12-27T16:44:41.697 回答