文件a.py的内容如下:
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位。)
发布于 2015-05-04 06:32:35
这在一定程度上取决于如何注册.py文件。当正确设置py.exe启动程序时,它应该可以工作。您可以通过在注册表中查找以下项来验证这一点:HKEY_CLASSES_ROOT\Python.File\shell\open\command。默认值应该是"C:\WINDOWS\py.exe" "%1" %*。
您也可以尝试使用以下方法:
type fearless.txt | a.py我刚刚注意到您正在使用Windows。您所看到的问题可能是因为一个旧的重定向Windows错误。据说它是在某个时候修复的,但是XP可能仍然受到部分影响。我建议您无论如何更新您的系统,因为微软不再支持Windows。
发布于 2015-05-04 05:40:16
如果这是在Unix系统上(正如我猜的那样),那么您需要在文件的顶部有一个谢邦行来告诉内核,这个文件的内容需要由指定的解释器执行。.py扩展只是一个细节,不用于决定“如何运行”给定程序。
当您尝试在不使用shebang的情况下运行该文件时,它将由当前的shell执行,这就是导致错误的原因。Python甚至没有出现在图片中。
https://stackoverflow.com/questions/30022900
复制相似问题