首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >流和壳。琐碎查询

流和壳。琐碎查询
EN

Stack Overflow用户
提问于 2015-05-04 05:00:05
回答 2查看 51关注 0票数 0

文件a.py的内容如下:

代码语言:javascript
复制
a = input()  
print(a)

fearless.txt包含字符串:粉色floyd。

现在,当我在命令提示符(windows)处输入%a.py < fearless.txt时,它会给出一个错误"lost.stdin“。

但是,当我键入%python a.py < fearless.txt时,不会发生错误。

我不明白这一点,因为.py是一个公认的扩展,由python运行。那不是两者都是等价物吗?注意,我使用符号%代替实际目录。

( Python版本: 3.4.3:9b73f1c3e601和winXP-32位。)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-04 06:32:35

这在一定程度上取决于如何注册.py文件。当正确设置py.exe启动程序时,它应该可以工作。您可以通过在注册表中查找以下项来验证这一点:HKEY_CLASSES_ROOT\Python.File\shell\open\command。默认值应该是"C:\WINDOWS\py.exe" "%1" %*

您也可以尝试使用以下方法:

代码语言:javascript
复制
type fearless.txt | a.py

我刚刚注意到您正在使用Windows。您所看到的问题可能是因为一个旧的重定向Windows错误。据说它是在某个时候修复的,但是XP可能仍然受到部分影响。我建议您无论如何更新您的系统,因为微软不再支持Windows。

票数 0
EN

Stack Overflow用户

发布于 2015-05-04 05:40:16

如果这是在Unix系统上(正如我猜的那样),那么您需要在文件的顶部有一个谢邦行来告诉内核,这个文件的内容需要由指定的解释器执行。.py扩展只是一个细节,不用于决定“如何运行”给定程序。

当您尝试在不使用shebang的情况下运行该文件时,它将由当前的shell执行,这就是导致错误的原因。Python甚至没有出现在图片中。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30022900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档